如何绘制pandas列的频率计数图

20

我有一个如下的Pandas数据框:

    Year   Winner
4   1954  Germany
9   1974  Germany
13  1990  Germany
19  2014  Germany
5   1958   Brazil
6   1962   Brazil
8   1970   Brazil
14  1994   Brazil
16  2002   Brazil

如何绘制Winner列的频率计数,使y轴显示频率,x轴显示国家名称?

我尝试过:

import numpy as np
import pandas as pd

df.groupby('Winner').size().plot.hist()
df1['Winner'].value_counts().plot.hist()
3个回答

38

你已经接近答案了,只需使用Series.plot.bar 函数,因为 value_counts 已经计算了频率:

df1['Winner'].value_counts().plot.bar()

g

也可以工作:

df1.groupby('Winner').size().plot.bar()

解决方案之间的差异在于 value_counts 的输出结果将按降序排列,以便第一个元素是出现最频繁的元素。


你如何获取相同图形的相对频率? - bibscy

9
除了@jezrael的答案之外,你还可以这样做:
df1['Winner'].value_counts().plot(kind='bar')

@jezrael提供的另一种可能是:

df1.groupby('Winner').size().plot(kind='bar')

0

只想说这个方法适用于最新版本的plotly。只需要添加,text_auto=True即可。 例如: px.histogram(df, x="用户国家",text_auto=True)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接