如何按升序或降序对海运条形图进行排序 [英] How to Sort Seaborn barplot in ascending or descending order

查看:23
本文介绍了如何按升序或降序对海运条形图进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

EXCEL文件包含有关7000 Apple App Store的信息,如下所示

这是我的代码->;

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd 
apple_store_data = pd.read_excel(r'apple_store.xlsx')
sns.barplot(data=apple_store_data,y='PrimaryGenre',x='AvgRating',color='g')
plt.show()

它给出如下输出->;

推荐答案

若要按字母顺序对栏进行排序,可以使用ordered=True使列categorical

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

df = pd.DataFrame({'Genre': np.random.choice(['helium', 'neon', 'argon', 'krypton', 'xenon', 'radon', 'oganesson'], 50),
                   'Rating': np.random.randint(1, 11, 50)})
df['Genre'] = pd.Categorical(df['Genre'], ordered=True)
ax = sns.barplot(data=df, y='Genre', x='Rating', palette='husl')
ax.tick_params(axis='y', length=0)
plt.tight_layout()
plt.show()

要按降序排列条形图,可以使用以下代码。在这种情况下,不需要将该列设置为绝对列。

ax = sns.barplot(data=df, y='Genre', x='Rating', palette='plasma',
                 order=df.groupby('Genre')['Rating'].agg('mean').sort_values(ascending=False).index)

ps:要仅显示例如前5名,请使用... .index[:5]

ax = sns.barplot(data=df, y='Genre', x='Rating', palette='plasma',
                 order=df.groupby('Genre')['Rating'].agg('mean').sort_values(ascending=False).index[:5])

这篇关于如何按升序或降序对海运条形图进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆