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

Posted

技术标签:

【中文标题】如何在 seaborn 中显示正确的计数值?【英文标题】:How do i show the proper count value in seaborn? 【发布时间】:2017-06-18 07:50:05 【问题描述】:
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轴显示玩家的对应值?

【问题讨论】:

【参考方案1】:

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

【讨论】:

非常感谢 @user517696 如果这解决了您的问题,请单击绿色箭头将答案标记为已接受。 这个方法是绘制所有玩家。我只需要前 10 名球员,而不是全部名单。

以上是关于如何在 seaborn 中显示正确的计数值?的主要内容,如果未能解决你的问题,请参考以下文章

Seaborn:带有频率的计数图()

如何在seaborn中显示所有数字图例值?

如何在 Python 中 Seaborn 的 countplot 中的每个条形上方添加值? [复制]

如何在 seaborn 热图标签中使用科学记数法?

如何在 python seaborn heatmap 旁边有一个显示行值总和的栏?

如何手动缩放 Seaborn Violinplot 的计数