看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。
直方图描述的是数据在不同区间内的分布情况,描述的数据量一般比较大,图示如下:
分组数据字段(统计结果)映射到横轴的位置,频数字段(统计结果)映射到矩形的高度,分类数据可以设置颜色增强分类的区分度。
我们随机生成三列数,每列 1000 个,其中一个在随机数上加一,一个减一:
df = pd.DataFrame({'a': np.random.randn(1000) + 1,
'b': np.random.randn(1000),
'c': np.random.randn(1000) - 1},
columns=['a', 'b', 'c'])
绘制直方图,默认分箱数为 10 个 (bins=10),alpha
为颜色的透明度,取 0 - 1 范围:
df.plot.hist(alpha=0.5)
Series 为单直方图:
df.a.plot.hist()
可以堆叠,并指定分箱数量:
df.plot.hist(stacked=True, bins=20)
也可以直接使用 df.hist(alpha=0.5)
来绘制三个子图:
也可以单独绘制子图,指定分箱数量:
df.a.hist(bins=20, alpha=0.5)
df.hist('a', bins=20, alpha=0.5) # 同上
by 参数可以做分组,生成分组后的子图:
df.Q1.hist(by=df.team)
您可以传递 matplotlib hist 支持的其他关键字。 例如,水平和累积直方图可以通过“方向为水平”和“累积为真”来绘制。参考 matplotlib hist 官方文档。
df['a'].plot.hist(orientation='horizontal', cumulative=True)
当我们绘制骰子6000次时,我们期望每个值大约获得1000次。 但是,当我们绘制两个骰子并将结果相加时,分布将完全不同。 直方图说明了这些分布:
df = pd.DataFrame(np.random.randint(1, 7, 6000),
columns = ['one'])
df['two'] = df['one'] + np.random.randint(1, 7, 6000)
df.plot.hist(bins=12, alpha=0.5)
更新时间:June 23, 2020, 7:02 p.m. 标签:pandas 直方图