如何在 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 中显示正确的计数值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中 Seaborn 的 countplot 中的每个条形上方添加值? [复制]