Matplotlib 直方图
直方图是对数值数据的分布的准确表示。它是对连续变量的概率分布的估计。它是一种条形图。
构建直方图的步骤如下:
- 将值范围分组(bin)。
- 将整个值范围划分为一系列间隔。
- 计算落入每个间隔的值的数量。
bin通常被指定为连续且不重叠的变量间隔。
matplotlib.pyplot.hist() 函数用于绘制直方图。它计算并绘制x的直方图。
参数
以下表列出了直方图的参数:
x | 数组或者数组的序列 |
---|---|
bins | 整数或者整数的序列或者 ‘auto’,可选参数 |
range | bins的下限和上限范围。 |
density | 如果为True,则返回元组的第一个元素将被标准化为概率密度。 |
cumulative | 如果为True,则计算一个直方图,其中每个bin给出该bin及更小值的所有bin的计数。 |
histtype | 绘制直方图的类型。默认为 ‘bar’ |
- ‘bar’ 是传统的条形直方图。如果给定多个数据,则将这些条形并排排列。
- ‘barstacked’是一种将多个数据彼此叠加的条形直方图。
- ‘step’ 生成一个默认不填充的折线图。
- ‘stepfilled’ 生成一个默认填充的折线图。
下面的例子绘制了一个班级学生成绩的直方图。定义了四个区间,分别是0-25,26-50,51-75和76-100。直方图显示了在这个范围内的学生人数。
from matplotlib import pyplot as plt
import numpy as np
fig,ax = plt.subplots(1,1)
a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
ax.hist(a, bins = [0,25,50,75,100])
ax.set_title("histogram of result")
ax.set_xticks([0,25,50,75,100])
ax.set_xlabel('marks')
ax.set_ylabel('no. of students')
plt.show()
情节如下所示: