Matplotlib 直方图

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

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

  1. 设置 bin 值的范围。
  2. 将整个值范围划分为一系列区间。
  3. 计算每个区间有多少个值。

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

matplotlib.pyplot.hist() 函数用来绘制直方图。语法如下

matplotlib.pyplot.hist(x, bins)

参数说明如下

必填参数:

  • 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)
fig.canvas.set_window_title("迹忆客 - jiyik.com")
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("直方图")
ax.set_xticks([0, 25, 50, 75, 100])
ax.set_xlabel('分数')
ax.set_ylabel('学生序号')
plt.show()

图形如下

matplotlib-直方图

查看笔记

扫码一下
查看教程更方便