Python Pandas 图形绘制(二):直方图

直方图(Histogram)又称质量分布图。

经常用来表示数据的分布情况。

一般用横轴表示数据类型(区间),纵轴表示分布情况(频数)。

Pandas 图形绘制(二):直方图

  • 1. 对单列数据绘制直方图 df.hist
  • 2. 对所有数据绘制多子图直方图 df.hist
  • 3. 累计直方图 cumulative=True
  • 4. 交叉直方图/重叠显示直方图 df.plot.hist
  • 5. 堆叠直方图/叠加显示直方图 stacked=True
  • 6. 水平直方图 orientation='horizontal'

1. 对单列数据绘制直方图 df.hist

1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df = pd.DataFrame({'a': np.random.randn(1000) + 1, 'b': np.random.randn(1000)}, columns=['a', 'b'])
# 这里我们产生两个标准正态分布
# 'a' 这一组 +1 以后 相当于整个分布向右平移了
# 原来以 0 为中心,变为了以 1 为中心
df['a'].hist()
plt.show()

在这里插入图片描述

2. 对所有数据绘制多子图直方图 df.hist

1
2
3
4
df.hist(color='r', alpha=0.5, bins=50)
# 不要加 plot,直接用 hist 即可多子图显示
# color 可以指定颜色
plt.show()

在这里插入图片描述

3. 累计直方图 cumulative=True

1
2
df['a'].plot.hist(cumulative=True)
plt.show()

在这里插入图片描述

4. 交叉直方图/重叠显示直方图 df.plot.hist

1
2
3
4
df.plot.hist(alpha=0.9,bins=50)
# alpha 代表重叠的透明度,如果是 0.9,表示 90% 的颜色为 'b'
# bins 代表一组数据有多少根柱子,即把数据分成多少份
plt.show()

在这里插入图片描述

5. 堆叠直方图/叠加显示直方图 stacked=True

1
2
3
df.plot.hist(stacked=True, bins=20)
# 在 'a' 和 'b' 重叠的部分进行 频次 累加堆叠
plt.show()

在这里插入图片描述

6. 水平直方图 orientation=‘horizontal’

1
2
df['a'].plot.hist(orientation='horizontal')
plt.show()

在这里插入图片描述