我想画一个图
sex ch r p
'm' 10 18 17
'm' 9 6 6
我尝试了联合绘图和barplot,但我不知道如何绘图
sns.jointplot(x=df.index,y=np.sum(df))
所以我在x轴数据框和y轴列数据框的总和上使用了代码,并得到错误:
操作数不能与形状(2,)(36,)一起广播
我想绘制一个图,其中在x轴上所有图的列和 y轴的列之和表示ch y轴为19,r出租车为24,p出租车为23
我尝试使用连接图,但是语法似乎错误
jointplot(x=df.index,y=np.sum(df))
我希望输出为
在x-axis
上应该有ch,r,p列
在y-axis
上应该有总共一列,我得到了一个空图,显示错误:
操作数不能与形状一起广播
答案 0 :(得分:0)
我认为您需要聚合sum
并通过unstack
重塑形状,因此可以使用seaborn.catplot
:
df = df.groupby('sex').sum().unstack().reset_index()
df.columns = ['cat','sex','val']
print (df)
cat sex val
0 ch m 19
1 r m 24
2 p m 23
sns.catplot(x='sex', y='val', hue='cat', data=df, kind='bar')
plot.bar
的另一种解决方案:
df.groupby('sex').sum().plot.bar()