我的数据如下:
channel ter Id
0 BWM A 6
1 IND A 15
2 RIA C 2
3 BWM B 7
4 IND B 5
5 RIA A 4
6 BWM C 3
7 IND C 33
8 RIA B 21
当我绘制它时:
sns.set(style='darkgrid')
sns.barplot(x='channel', y='Id', hue='ter', data=df, palette='Set2')
plt.show()
它是由x轴上的字母顺序排序的,因此通道为bwm-> ind-> ria。但是,我需要的是通过计数(即ID值)对其进行排序,因此Ind是首先。
我尝试在barplot()
中添加order = df['channel'].value_counts().index
,但没有帮助。
我也希望能够根据计数订购ter,但不必花太多努力。
谢谢!
由于每个通道都包含多个ID,因此简单地定义了"由ID排序";您必须指定类似ID的总和,组中最大的ID或其他类似的内容。如果您想通过最大的ID和订购条,
sns.barplot(x='channel', y='Id', hue='ter', data=df, palette='Set2', order=df.groupby('channel').Id.sum().sort_values(ascending=False).index)
做这项工作。