Matplotlib并排条形图

冠心病

我正在尝试使用matplotlib绘制以下数据框:

df = pd.DataFrame({'X': ["A", "A", "B", "B"], 'Z': ["a", "b", "a", "b"], 'Y': [5, 1, 10, 5]})
df

    X   Z   Y
0   A   a   5
1   A   b   1
2   B   a   10
3   B   b   5

我想要的是两个条形图,其中条形图彼此相邻而不是彼此重叠。当我运行此工具时,这些条形图相互重叠:

plt.barh(df['X'][df['Z'] == "a"], df['Y'][df['Z'] == "a"], color = 'blue')
plt.barh(df['X'][df['Z'] == "b"], df['Y'][df['Z'] == "b"], color = 'red')

而当我尝试更改条形的位置时,出现错误:can only concatenate str (not "float") to str我该如何解决?

斯科特·波士顿

不确定您到底想要什么,但是您可以尝试以下操作:

df.set_index(['X','Z'])['Y'].unstack().plot.barh()

在此处输入图片说明

要么

df.set_index(['X','Z'])['Y'].unstack().plot.bar()

在此处输入图片说明

要么

df.set_index(['X','Z'])['Y'].unstack().plot.barh(subplots=True, layout=(1,2))

在此处输入图片说明

要么

df.set_index(['X','Z'])['Y'].unstack().plot.bar(subplots=True, layout=(1,2))

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章