Python Pandas - Plotting multiple Bar plots by category from dataframe(Python Pandas-从DataFrame按类别绘制多个条形图)
本文介绍了Python Pandas-从DataFrame按类别绘制多个条形图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的数据帧看起来像
df = pd.DataFrame(data={'ID':[1,1,1,2,2,2], 'Value':[13, 12, 15, 4, 2, 3]})
Index ID Value
0 1 13
1 1 12
2 1 15
3 2 4
4 2 2
5 2 3
我想按ID(类别)来绘制它,这样每个类别就会有不同的条形图,
所以在这种情况下我会有两位数
一个图形,条形图ID=1,
和ID=2的第二个单独的图形条形图。
我是否可以使用类似df.plot(y='Value', kind='bar')
的命令(最好不要循环)?
推荐答案
可以选择两种,一种是使用matplotlib,另一种是您现在绝对应该使用的海运,因为它与 pandas 配合得很好。
带有matplotlib的 pandas
您必须创建一个带有您设置的列数和行数的子图。如果nrows
或ncols
设置为1,则它在1-D中给出一个数组axes
,否则在2-D中给出一个数组。然后,将此对象交给Pandas Plot方法。
如果类别数未知或很高,则需要使用循环。
import pandas as pd
import matplotlib.pyplot as plt
fig, axes = plt.subplots( nrows=1, ncols=2, sharey=True )
df.loc[ df["ID"] == 1, 'Value' ].plot.bar( ax=axes[0] )
df.loc[ df["ID"] == 2, 'Value' ].plot.bar( ax=axes[1] )
plt.show()
带海运的 pandas
Seaborn是我所知道的最令人惊叹的图形工具。函数catplot
允许您在设置参数col
时根据列的值绘制一系列图形。您可以使用kind
选择绘图类型。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('white')
df['index'] = [1,2,3] * 2
sns.catplot(kind='bar', data=df, x='index', y='Value', col='ID')
plt.show()
我添加了一列index
,以便与df.plot.bar
进行比较。如果您不想删除,请删除x='index'
,它将显示带有错误的唯一条。
这篇关于Python Pandas-从DataFrame按类别绘制多个条形图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Python Pandas-从DataFrame按类别绘制多个条形图


基础教程推荐
猜你喜欢
- 包装空间模型 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- 求两个直方图的卷积 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01