Matplotlib - 直方图

直方图是数值数据分布的精确表示。 它是对连续变量概率分布的估计。 它是一种条形图。

要构建直方图,请按照以下步骤操作 −

  • Bin 值的范围。
  • 将整个值范围划分为一系列间隔。
  • 计算每个区间有多少个值。

通常将 bin 指定为变量的连续、非重叠区间。

matplotlib.pyplot.hist() 函数绘制直方图。 它计算并绘制 x 的直方图。

参数

下表列出了直方图的参数 −

x 数组或数组序列
bins 整数或序列或'auto',可选
可选参数
range bin 的下限和上限。
density 如果为 True,返回元组的第一个元素将是归一化的计数以形成概率密度
cumulative 如果为 True,则计算直方图,其中每个 bin 给出该 bin 中的计数加上所有 bin 中较小值的计数。
histtype 要绘制的直方图类型。 默认为"bar"
  • 'bar'是传统的条形直方图。 如果给出了多个数据,则条形图会并排排列。
  • "barstacked"是一个条形直方图,其中多个数据堆叠在一起。
  • "step"生成默认情况下未填充的线图。
  • "stepfilled"生成一个默认填充的线图。

以下示例绘制了一个班级学生获得的分数的直方图。 定义了四个 bin,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()

如下图所示 −

直方图