How to create a stacked bar chart for my DataFrame using seaborn(如何使用海运为我的DataFrame创建堆叠条形图)
本文介绍了如何使用海运为我的DataFrame创建堆叠条形图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个DataFramedf
:
df = pd.DataFrame(columns=["App","Feature1", "Feature2","Feature3", "Feature4","Feature5", "Feature6","Feature7","Feature8"], data=[['SHA', 0, 0, 1, 1, 1, 0, 1, 0], ['LHA', 1, 0, 1, 1, 0, 1, 1, 0], ['DRA', 0, 0, 0, 0, 0, 0, 1, 0], ['FRA', 1, 0, 1, 1, 1, 0, 1, 1], ['BRU', 0, 0, 1, 0, 1, 0, 0, 0], ['PAR', 0, 1, 1, 1, 1, 0, 1, 0], ['AER', 0, 0, 1, 1, 0, 1, 1, 0], ['SHE', 0, 0, 0, 1, 0, 0, 1, 0]])
# display(df)
App Feature1 Feature2 Feature3 Feature4 Feature5 Feature6 Feature7 Feature8
0 SHA 0 0 1 1 1 0 1 0
1 LHA 1 0 1 1 0 1 1 0
2 DRA 0 0 0 0 0 0 1 0
3 FRA 1 0 1 1 1 0 1 1
4 BRU 0 0 1 0 1 0 0 0
5 PAR 0 1 1 1 1 0 1 0
6 AER 0 0 1 1 0 1 1 0
7 SHE 0 0 0 1 0 0 1 0
我要创建堆叠条形图,以便每个堆栈与App
相对应,而Y轴将包含1
值的计数,而X轴将为Feature
。
它应该类似于此条形图,唯一的区别是现在我希望看到堆叠条形图和带颜色的图例:
df_c = df.iloc[:, 1:].eq(1).sum().rename_axis('Feature').reset_index(name='Count')
df_c = df_c.sort_values('Count')
plt.figure(figsize=(12,8))
ax = sns.barplot(x="Feature", y='Count', data=df_c, palette=sns.color_palette("GnBu", 10))
plt.xticks(rotation='vertical')
ax.grid(b=True, which='major', color='#d3d3d3', linewidth=1.0)
ax.grid(b=True, which='minor', color='#d3d3d3', linewidth=0.5)
plt.show()
推荐答案
您可以按照@bharath的建议使用 pandas 图:
import seaborn as sns
sns.set()
df.set_index('App').T.plot(kind='bar', stacked=True)
输出:
更新:
从matplotlib导入ListedColormap df.set_index(‘App’) .reindex_axis(df.set_index(‘App’).sum().sort_values().index,轴=1) .T.Plot(KIND=‘BAR’,STACKED=True, colormap=ListedColormap(sns.color_palette("GnBu",10)), FigSize=(12,6))更新的 pandas 0.21.0+reindex_axis
已弃用,请使用reindex
from matplotlib.colors import ListedColormap
df.set_index('App')
.reindex(df.set_index('App').sum().sort_values().index, axis=1)
.T.plot(kind='bar', stacked=True,
colormap=ListedColormap(sns.color_palette("GnBu", 10)),
figsize=(12,6))
输出:
这篇关于如何使用海运为我的DataFrame创建堆叠条形图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何使用海运为我的DataFrame创建堆叠条形图
猜你喜欢
- python-m http.server 443--使用SSL? 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- 沿轴计算直方图 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01