Seaborn:从元组列表创建堆叠的直方图

火球1

我有一个元组列表,如下所示:

[(7, 7, 57, 192), (7, 7, 57, 192), (7, 7, 57, 192), (7, 7, 57, 192), (7, 7, 52, 192), (7, 7, 52, 192)]

我想为元组中的所有值创建堆叠的直方图。对于这种情况,将有4种直方图颜色(对应于元组中的每个位置),并且x轴将表示该特定索引中每个数字的出现频率。例如,

色彩

  • 红色(0)
  • 蓝色(1)
  • 绿色(2)
  • 紫色的(3)

对于给定的颜色:

  • x轴值7处应该有一个长度为6的红色条
  • x轴值为7时会有一条长度为6的蓝色条(堆叠在红色上)
  • x轴值57处将出现长度为4的绿色条
  • x轴值52处将有一个长度为2的绿色条
  • x轴值192处将出现长度为6的绿色条

如何使用seaborn来执行此操作,而不必为这四个元组位置创建单独的列表,也不必创建熊猫数据框?

约翰·C

您可以创建从最后一种颜色循环到第一种颜色的直方图:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

data = [(7, 7, 57, 192), (7, 7, 57, 192), (7, 7, 57, 192), (7, 7, 57, 192), (7, 7, 52, 192), (7, 7, 52, 192)]
sns.set()
for i, color in enumerate(['red', 'blue', 'green', 'purple'][::-1]):
    sns.histplot([di for d in data for di in d[:4-i]], bins=np.arange(-0.5, 200), color=color)
plt.show()

结果图

PS:为了使代码更独立于元组的长度,可以从颜色图中检索颜色:

n = len(data[0])
colors = plt.cm.rainbow(np.linspace(0, 1, n))
for i, color in enumerate(colors):
    sns.histplot([di for d in data for di in d[:n - i]], bins=np.arange(-0.5, 200), color=color)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从事件列表创建“直方图”

来自分类Dev

使用pandas dataframes数据python创建堆叠的直方图

来自分类Dev

Matplotlib,从三个不等长的数组创建堆叠的直方图

来自分类Dev

如何创建带有ggplot2的堆叠直方图?

来自分类Dev

在R中为堆叠的直方图创建条形边框

来自分类Dev

从类型列表创建向量元组

来自分类Dev

如何创建元组列表

来自分类Dev

从元组列表创建嵌套字典

来自分类Dev

如何创建元组列表

来自分类Dev

如何使用seaborn绘制将直方图条围绕刻度线居中?堆叠条是必不可少的

来自分类Dev

堆叠组件的直方图

来自分类Dev

gnuplot堆叠直方图重叠

来自分类Dev

Python堆叠直方图

来自分类Dev

如何从范围/间隔/段列表创建直方图?

来自分类Dev

在NUMPY中堆叠的图像:“ FutureWarning:必须以“序列”类型(例如列表或元组)传递要堆叠的数组”

来自分类Dev

从 Python 中的列表创建元组列表

来自分类Dev

从列表列表创建二维直方图

来自分类Dev

尝试从元组列表和元组创建数据框

来自分类Dev

从元组列表创建熊猫数据框

来自分类Dev

从元组列表创建字典,输出错误

来自分类Dev

从列表中提取值并创建元组

来自分类Dev

从无限列表创建元组

来自分类Dev

使用for循环创建元组列表

来自分类Dev

如何创建类型列表以扩展为元组?

来自分类Dev

在列表推导中将元组解包的对象创建

来自分类Dev

从数据框条目创建元组列表

来自分类Dev

在列表推导中将元组解包的对象创建

来自分类Dev

从列表中提取值并创建元组

来自分类Dev

我如何从元组列表中创建字典?