绘制堆叠条形图
- 2025-01-22 08:45:00
- admin 原创
- 87
问题描述:
我正在尝试用熊猫创建一个复制图片的堆积条形图,我的所有数据都与该 Excel 电子表格分开。
我不知道如何像图中那样为其制作数据框,也不知道如何制作堆叠条形图。我找到的所有示例都以不同的方式工作,与我尝试创建的内容不同。
我的数据框是使用 pandas 数据框缩小到以下内容的所有值的 csv。
Site Name Abuse/NFF
0 NORTH ACTON ABUSE
1 WASHINGTON -
2 WASHINGTON NFF
3 BELFAST -
4 CROYDON -
我已经设法对数据进行总计并获取每个站点的单独计数,但我似乎无法将其组合成图表。
真的很感谢一些强有力的指导。
代码完成,非常感谢协助完成。
test5 = faultdf.groupby(['Site Name', 'Abuse/NFF'])['Site Name'].count().unstack('Abuse/NFF').fillna(0)
test5.plot(kind='bar', stacked=True)
解决方案 1:
您是否遇到了错误,或者只是不确定从哪里开始?
%pylab inline
import pandas as pd
import matplotlib.pyplot as plt
df2 = df.groupby(['Name', 'Abuse/NFF'])['Name'].count().unstack('Abuse/NFF').fillna(0)
df2[['abuse','nff']].plot(kind='bar', stacked=True)
解决方案 2:
这应该有帮助
df.groupby(['NFF', 'ABUSE']).size().unstack().plot(kind='bar', stacked=True)
解决方案 3:
也许你可以使用pandas crosstab 函数
test5 = pd.crosstab(index=faultdf['Site Name'], columns=faultdf['Abuse/NFF'])
test5.plot(kind='bar', stacked=True)
解决方案 4:
如果你想改变图的大小,使用 argfigsize
df.groupby(['NFF', 'ABUSE']).size().unstack()
.plot(kind='bar', stacked=True, figsize=(15, 5))
解决方案 5:
from matplotlib import cm
cmap = cm.get_cmap('Spectral') # Colour map (there are many others)
df.plot(kind='bar', stacked=True, figsize=(20, 10), cmap=cmap, edgecolor='None')
plt.show()
这也可以避免条形图图例中出现重复的颜色。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD