Python Seaborn Countplot:仅显示n个最常见类别
我有一个python数组,列出了所有出现的字符串标签。我们称之为标签数组。 使用seaborn作为sns,我想显示此阵列的计数图:Python Seaborn Countplot:仅显示n个最常见类别,python,seaborn,Python,Seaborn,我有一个python数组,列出了所有出现的字符串标签。我们称之为标签数组。 使用seaborn作为sns,我想显示此阵列的计数图: sns.countplot(标签\u数组) 这是可行的,但由于我的数组中有太多不同的标签,输出看起来不太好 有没有办法只显示n个最常见的标签。虽然原则上countplot应该知道计数,因此只允许显示其中的一部分,但情况并非如此。因此,在这里使用countplot可能没有太大意义 取而代之的是使用普通的熊猫图。例如,要显示列表中最常见的5个项目 pandas.Seri
sns.countplot(标签\u数组)
这是可行的,但由于我的数组中有太多不同的标签,输出看起来不太好
有没有办法只显示n个最常见的标签。虽然原则上
countplot
应该知道计数,因此只允许显示其中的一部分,但情况并非如此。因此,在这里使用countplot可能没有太大意义
取而代之的是使用普通的熊猫图。例如,要显示列表中最常见的5个项目
pandas.Series(labels_array).value_counts()[:5].plot(kind="bar")
完整示例:
import string
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
l = list(string.ascii_lowercase)
n = np.random.rand(len(l))
a = np.random.choice(l, p=n/n.sum(),size=400)
s = pd.Series(a)
s.value_counts()[:5].plot(kind="bar")
plt.show()
虽然
countplot
原则上应该知道计数,因此只允许显示其中的一部分,但事实并非如此。因此,在这里使用countplot可能没有太大意义
取而代之的是使用普通的熊猫图。例如,要显示列表中最常见的5个项目
pandas.Series(labels_array).value_counts()[:5].plot(kind="bar")
完整示例:
import string
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
l = list(string.ascii_lowercase)
n = np.random.rand(len(l))
a = np.random.choice(l, p=n/n.sum(),size=400)
s = pd.Series(a)
s.value_counts()[:5].plot(kind="bar")
plt.show()
我遇到了同样的问题(和这个问题),发现这个问题已经得到了回答
countplot
函数具有参数order
,您可以在其中指定要为哪些值绘制计数。
如前所述,使用value\u counts
函数可以获得最常出现的值
见:
我遇到了同样的问题(和这个问题),发现这个问题已经得到了回答
countplot
函数具有参数order
,您可以在其中指定要为哪些值绘制计数。
如前所述,使用value\u counts
函数可以获得最常出现的值
见:
您可以使用
pd.value\u counts()
对事件进行排序
要获得前N个实例,只需编写pd.value\u counts(labels\u array).iloc[:N]。index
(标签索引)
您可以在countplot
上应用它,它应该如下所示:
sns.countplot(labels_array, order=pd.value_counts(labels_array).iloc[:N].index)
您可以使用
pd.value\u counts()
对事件进行排序
要获得前N个实例,只需编写pd.value\u counts(labels\u array).iloc[:N]。index
(标签索引)
您可以在countplot
上应用它,它应该如下所示:
sns.countplot(labels_array, order=pd.value_counts(labels_array).iloc[:N].index)