python - 使用分组的 DataFrame 绘制堆叠直方图

标签 python pandas plot histogram visualization

我想在不同类别可见的地方堆叠直方图。

目前我有没有类的直方图,代码如下:

plt.hist(hist_matrix2.column_name)

生成此直方图:

histogram without classes

和另一个具有相同数据的直方图,使用此代码按类分组:

hist_matrix2.groupby("number").column_name.plot.hist(alpha=0.5, bins  = [0,5,10,15,20,25,30], stacked = True)

生成此直方图:

histogram with classes

如您所见,尽管设置了参数,但类仍然存在,但没有堆叠。我可以做些什么来堆叠类?

最佳答案

plt.hist 有一个内置的堆叠标志,您可以设置:

plt.hist(hist_matrix2.column_name, stacked=True)

针对您的问题进行编辑,对于长数据(多层堆叠),您首先需要将数据重组为列表列表:

wide=hist_matrix2.pivot( columns='number', values='column_name')
#This creates many missing values which pandas does not like, so we drop them
widelist=[wide[col].dropna() for col in wide.columns]
# and the stacked graph is here
plt.hist(widelist,stacked=True)
plt.show()

关于python - 使用分组的 DataFrame 绘制堆叠直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45937358/

相关文章:

删除条形图中每个面板未使用的因素

Python - 面向 CSV 时间的将大量列转换为行

python - Django 的方法是什么?

r - 用不同颜色绘制一个时间序列

python - 检查数据帧列中的值是否在列表中 - Python

python - 在日期出现时插入标志

python - 使用 pandas dataframe 绘制误差线 matplotlib

python - 防止打印某些数字

python - 导入 Pandas 时保留 KDB 长纪元时间

python - Pandas:可以使用 lambda 函数更改列中的名称/反馈