【问题标题】:How do i show the proper count value in seaborn?如何在 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轴显示玩家的对应值?

【问题讨论】:

    标签: python pandas matplotlib seaborn data-analysis


    【解决方案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 名球员,而不是全部名单。
    猜你喜欢
    • 2023-04-01
    • 2018-03-24
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多