Matplotlib 并排条形图

CHR*_*HRD 4 python matplotlib pandas

我正在尝试使用 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
Run Code Online (Sandbox Code Playgroud)

我想要的是两个条形图,其中条形图彼此相邻而不是彼此重叠。当我运行这个时,条形图被放置在彼此的顶部:

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')
Run Code Online (Sandbox Code Playgroud)

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

And*_*rea 6

如果你想让酒吧并排,你可以使用seaborn库:

import seaborn as sns
sns.barplot(data=df, x='Y', hue='Z', y='X')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述