2017-10-07 1318 views
3

我知道seaborn.countplot的屬性order可以設置爲確定類別的順序。但是我想要做的是將這些類別按照遞減的順序排列。我知道我可以通過手動計算計數來完成此操作(在原始數據框上使用groupby操作等),但我想知道seaborn.countplot是否存在此功能。令人驚訝的是,我無法在任何地方找到這個問題的答案。Seaborn.countplot:按次數排序類別?

回答

6

根據我所知,此功能未嵌入seaborn.countplot - order參數僅接受類別字符串列表,並將排序邏輯留給用戶。

這與value_counts()並不難,只要你有一個DataFrame。例如,

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() 

enter image description here

1

大多數情況下,一個seaborn countplot是不是真的有必要。只是用熊貓吧繪圖吧:

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()