如何在 Python 中绘制直方图?

17 Mar 2025 | 4 分钟阅读

什么是直方图?

直方图是连续分组后的人口统计表的一种图形表示。它由一系列矩形组成,矩形的底边等于类别界限之间的距离,面积与相应类别中的频率成正比。由于此类图中的底边跨越了类别界限之间的空间,因此每个矩形都相邻。矩形的高度与相似组的可比频率成反比,与不同类别的频率密度成反比。

换句话说,直方图是一个图形,由宽度等于类距且面积与变量频率直接相关的矩形组成。

何时使用直方图?

直方图图表在特定情况下使用。如下所示:

  • 数据必须是定量的。
  • 为了检查数据分布的形状,我们使用直方图。
  • 用于确定一个过程是否会随时间变化。
  • 用于评估当涉及两个或多个过程时结果是否不同。
  • 用于确定指定过程是否满足客户需求。

直方图的类型

根据数据的频率分布,直方图可以分为多种形式。有多种分布,包括高斯分布、双峰分布、偏斜分布、梳状分布、边缘峰分布、多峰分布、狗粮分布等。直方图可以表示这些多种类型的分布。直方图的各种类型是:

  • 均匀直方图:均匀分布表示的组太少。每个组包含相同数量的条目。它可能包括具有多个峰的分布,所有峰的高度相同。
  • 对称直方图:钟形直方图是对称直方图的另一种说法。如果沿直方图的中心绘制一条垂直线,则当两侧形状和大小相同时,直方图被认为是对称的。
  • 双峰直方图:如果直方图包含两个峰,则将其归类为双峰。当数据集包含关于两种不同类型的人或合并组的观测值,并且两个不同直方图的中心与两个数据集中的方差足够远时,则存在双峰性。
  • 概率直方图:此直方图以图形形式描绘不连续的概率分布。每个 x 值都用一个矩形表示。每个矩形的面积与相应值发生的可能性成正比。

使用 Matplotlib 绘制直方图

箱(Bins)定义为变量的连续、不重叠的范围。matplotlib.pyplot.hist() 方法用于计算和生成变量 x 的直方图。创建完整范围的箱是创建直方图的第一步。在下一步中,将整个数字范围分布到第一步创建的一系列区间中,并计算落入每个区间的值。

让我们使用一些任意值来构建一个简单的直方图。下面代码生成的简单直方图包含一些随机值。

代码

输出

How to Plot Histogram in Python

修改 Matplotlib 中的直方图

Matplotlib 提供了多种技术来自定义直方图。matplotlib.pyplot.hist() 方法提供了许多我们可以用来自定义直方图的属性。hist() 方法提供了一个 patches 对象,该对象可以访问生成的对象的属性,从而允许我们根据需要更改绘图。

代码

输出

How to Plot Histogram in Python

使用下面的代码修改上面生成的直方图,以获得更清晰的视图和更精确的读数。

代码

输出

How to Plot Histogram in Python