pandas 按计数图中的计数对类别进行排序

k2fxgqgv  于 2023-04-10  发布在  其他
关注(0)|答案(2)|浏览(115)

我知道seaborn.countplot有一个属性order,可以设置它来确定类别的顺序。但是我想做的是让类别按照递减计数的顺序排列。我知道我可以通过手动计算计数来完成这一点(在原始 Dataframe 上使用groupby操作等),但我想知道seaborn.countplot是否存在此功能。令人惊讶的是,我在任何地方都找不到这个问题的答案。

polhcujo

polhcujo1#

据我所知,seaborn.countplot中没有内置此功能-order参数只接受类别的字符串列表,并将排序逻辑留给用户。
如果你有一个DataFrame的话,这对于value_counts()来说并不难做到。

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

sns.set(style='darkgrid')

titanic = sns.load_dataset('titanic')
sns.countplot(x = 'class',
              data = titanic,
              order = titanic['class'].value_counts().index)
plt.show()

zrfyljdw

zrfyljdw2#

大多数情况下,海运计数图并不是真正必要的。只需使用pandas bar plot绘制:

import seaborn as sns; sns.set(style='darkgrid')
import matplotlib.pyplot as plt

df = sns.load_dataset('titanic')

df['class'].value_counts().plot(kind="bar")

plt.show()

相关问题