如何将seaborn countplot按数值从高到低排序?sort_values不生效怎么办
问题根源
你对数据集按arrival_date_month字段排序的操作,并不会调整seaborn countplot的轴类别排序规则,countplot默认会按字段唯一值的固有顺序排列x轴,不会自动按照计数频次高低排序。
实现方法
调用countplot时通过order参数指定x轴的展示顺序,将按计数值降序排列后的类别列表传入该参数即可,我们可以通过pandas的value_counts()方法快速获取按计数降序排列的类别索引,修改后代码如下:
plt.figure(figsize=(15,8)) sns.countplot( x='arrival_date_month', data=df, # value_counts默认返回按计数降序的结果,取其index即为排序后的类别列表 order=df['arrival_date_month'].value_counts().index ) plt.xticks(rotation=45)
如果需要按计数值升序排列,只需要将索引反转即可:
order=df['arrival_date_month'].value_counts().index[::-1]
内容的提问来源于stack exchange,提问作者Ruslan Pylypiuk
相关产品推荐
相关产品推荐

