我如何在 seaborn 中显示正确的计数值?

How do i show the proper count value in seaborn?

CH Gayle          17
YK Pathan         16
AB de Villiers    15
DA Warner         14
SK Raina          13
RG Sharma         13
MEK Hussey        12
AM Rahane         12
MS Dhoni          12
G Gambhir         12

我有一个这样的系列。我想在 x 轴上绘制播放器,在 y 轴上绘制它们各自的值。我试过这段代码:

man_of_match=(matches['player_of_match'].value_counts())
sns.countplot(x=(man_of_match),data=matches,color='B')
sns.plt.show()

但是使用这段代码,它绘制了数值的频率,即在 x 轴上绘制了 12,y 轴上的计数变为 4。类似地,对于 x 轴上的 13,它在 y 轴上显示 2。

如何让x轴显示玩家的名字,y轴显示玩家的相应值。?

sns.countplot 旨在为您计数。您正在用 value_counts 计算自己,然后绘制计数的计数。将 matches 直接传递给 sns.countplot

ax = sns.countplot(matches['player_of_match'], color='B')
plt.sca(ax)
plt.xticks(rotation=90);


如果你想限制前10名玩家。像你一样使用 value_counts 。而是直接使用matplotlib,来作图。

ax = matches['player_of_match'].value_counts().head(10).plot.bar(width=.8, color='R')
ax.set_xlabel('player_of_match')
ax.set_ylabel('count')

你可以让它看起来很像 seaborn 情节

kws = dict(width=.8, color=sns.color_palette('pastel'))
ax = matches['player_of_match'].value_counts().head(10).plot.bar(**kws)
ax.set_xlabel('player_of_match')
ax.set_ylabel('count')
ax.grid(False, axis='x')