按字母顺序排列图表

时间:2017-12-06 19:00:26

标签: python pandas data-visualization seaborn

我的数据如下:

        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是第一个。

我尝试在order = df['channel'].value_counts().index内添加barplot(),但没有帮助。

我也希望能够按照每个频道的计数来订购,但是如果付出太多努力则不必。

谢谢!

1 个答案:

答案 0 :(得分:1)

由于每个频道包含多个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)

完成这项工作。