使用附加数据元素创建直方图

Creating Histogram with Additional Data Element

我有一个数据框,其中汇总了不同类别的数量和值。我需要将其可视化以显示不同数量组下有多少类别,以及它们在较早的总和中的价值是多少。

要使用的示例数据框:

df = pd.DataFrame({'cat': ['A','B','C','D','E','F','G','H','I','J'],
                   'count': [5,10,50,20,3,18,28,93,42,31],
                   'value': [100,245,890,510,85,690,730,2470,1870,1180],
                  })

我使用这个创建了计数直方图:

df.plot(kind='hist',y='count',bins=[0,20,40,60,80,100])

这将显示 'cat' 在 'count' 变量的不同组(classes)中的分布。

现在,对于每个这样的 class,我需要在同一张图表上显示总共 'value'。要么只是显示为每个直方图条的数字的总和,要么是同一图表(轴)右侧带有辅助 y 轴的线。

这将使我能够证明计数为(比如说)0-20 的类别总共有 1220。 [值(A+B+E+F)]

此外,您可能会建议我应该使用其他图表来更好地形象化此语句,而不是直方图。

我使用 pandas.cut() 方法手动创建 bin 并生成了另一个数据框,它是早期数据框的聚合。

这是我能想到的最接近的。但是我仍然没有清楚地看到我想要展示的内容。

df['Bins'] = pd.cut(df['count'],bins=range(0,70,10))
df1 = df.groupby('Bins').agg({'Bins':'count','value':'sum'})
df1.plot(kind='bar',subplots=True,figsize=(15,8))
plt.show()