matplotlib.axes.Axes.hist#

Axes.hist(x, bins=None, *, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, data=None, **kwargs)[源]#

计算并绘制直方图。

此方法使用 numpy.histogramx 中的数据分箱并计算每个箱中的值数量,然后以 BarContainerPolygon 的形式绘制分布图。*bins*、*range*、*density* 和 *weights* 参数会被转发给 numpy.histogram

如果数据已经分箱并计数,请使用 barstairs 来绘制分布图

counts, bins = np.histogram(x)
plt.stairs(counts, bins)

或者,通过将每个箱视为一个权重等于其计数的单点,使用 hist() 绘制预先计算的箱和计数

plt.hist(bins[:-1], bins, weights=counts)

数据输入 x 可以是一个单独的数组,一个可能包含不同长度数据集的列表([x0, x1, ...]),或者是一个每列都是一个数据集的二维 ndarray。请注意,ndarray 形式相对于列表形式是转置的。如果输入是一个数组,则返回值为元组(nbinspatches);如果输入是数组序列,则返回值为元组([n0, n1, ...],*bins*,[patches0, patches1, ...])。

不支持掩码数组。

参数:
x(n,) 数组或 (n,) 数组序列

输入值,这可以是一个单独的数组,或者是一个长度不要求相同的数组序列。

bins整数、序列或字符串, 默认值: rcParams["hist.bins"] (默认值: 10)

如果 bins 是一个整数,它定义了该范围内等宽箱的数量。

如果 bins 是一个序列,它定义了箱的边缘,包括第一个箱的左边缘和最后一个箱的右边缘;在这种情况下,箱的间距可能不均匀。除最后一个(最右侧的)箱外,所有箱都是半开区间。换句话说,如果 bins

[1, 2, 3, 4]

则第一个箱是 [1, 2)(包含 1,但不包含 2),第二个箱是 [2, 3)。然而,最后一个箱是 [3, 4],它 包含 4。

如果 bins 是一个字符串,它是 numpy.histogram_bin_edges 支持的分箱策略之一:'auto'、'fd'、'doane'、'scott'、'stone'、'rice'、'sturges' 或 'sqrt'。

range元组或 None, 默认值: None

箱的下限和上限范围。下限和上限的离群值将被忽略。如果未提供,range(x.min(), x.max())。如果 *bins* 是一个序列,*range* 将不起作用。

如果 *bins* 是一个序列或指定了 *range*,则自动缩放将基于指定的箱范围而不是 *x* 的范围。

density布尔值, 默认: False

如果为 True,则绘制并返回概率密度:每个箱将显示箱的原始计数除以总计数 和箱宽density = counts / (sum(counts) * np.diff(bins))),使得直方图下的面积积分为 1(np.sum(density * np.diff(bins)) == 1)。

如果 *stacked* 也为 True,则所有直方图的总和将被归一化为 1。

weights(n,) 类数组或 None, 默认值: None

一个与 *x* 形状相同的权重数组。*x* 中的每个值仅贡献其关联的权重到箱计数中(而不是 1)。如果 *density* 为 True,则权重会被归一化,以便密度在整个范围内的积分保持为 1。

cumulative布尔值或 -1, 默认值: False

如果为 True,则计算一个直方图,其中每个箱表示该箱中的计数加上所有较小值的箱中的计数。最后一个箱表示数据点的总数。

如果 *density* 也为 True,则直方图会被归一化,使得最后一个箱的值为 1。

如果 *cumulative* 是一个小于 0 的数字(例如 -1),则累积方向会反转。在这种情况下,如果 *density* 也为 True,则直方图会被归一化,使得第一个箱的值为 1。

bottom类数组或浮点数, 默认值: 0

每个箱底部的Y轴位置,即箱子从 bottom 绘制到 bottom + hist(x, bins)。如果是一个标量,则每个箱的底部都移动相同的量。如果是一个数组,则每个箱独立移动,并且 *bottom* 的长度必须与箱的数量匹配。如果为 None,则默认为 0。

histtype{'bar', 'barstacked', 'step', 'stepfilled'}, 默认值: 'bar'

要绘制的直方图类型。

  • 'bar' 是一种传统的条形直方图。如果提供多个数据,条形图将并排排列。

  • 'barstacked' 是一种条形直方图,其中多个数据堆叠在一起。

  • 'step' 生成一个线图,默认不填充。

  • 'stepfilled' 生成一个线图,默认填充。

align{'left', 'mid', 'right'}, 默认值: 'mid'

直方图条的水平对齐方式。

  • 'left':条形图以左箱边缘为中心对齐。

  • 'mid':条形图以箱边缘之间为中心对齐。

  • 'right':条形图以右箱边缘为中心对齐。

orientation{'vertical', 'horizontal'},默认值: 'vertical'

如果为 'horizontal',则 barh 将用于条形直方图,且 *bottom* kwarg 将是左边缘。

rwidth浮点数或 None, 默认值: None

条形图的相对宽度,作为箱宽度的分数。如果为 None,则自动计算宽度。

如果 *histtype* 为 'step' 或 'stepfilled',则忽略。

log布尔值,默认值:False

如果为 True,直方图轴将被设置为对数刻度。

color颜色颜色 列表或 None, 默认值: None

颜色或颜色序列,每个数据集一个。默认值(None)使用标准线条颜色序列。

label字符串或字符串列表,可选

字符串,或用于匹配多个数据集的字符串序列。条形图为每个数据集生成多个补丁(patches),但只有第一个补丁会获得标签,这样 legend 才能按预期工作。

stacked布尔值, 默认值: False

如果为 True,多个数据将堆叠在一起。如果为 False,如果 *histtype* 为 'bar',多个数据将并排排列;如果 *histtype* 为 'step',则会相互覆盖(堆叠)

返回:
n数组或数组列表

直方图箱的值。有关可能语义的描述,请参见 *density* 和 *weights*。如果输入 *x* 是一个数组,则这是一个长度为 *nbins* 的数组。如果输入是数组序列 [data1, data2, ...],则这是一个数组列表,其中包含每个数组的直方图值,顺序相同。即使不使用加权或归一化,数组 *n*(或其元素数组)的数据类型也始终是浮点数。

bins数组

箱的边缘。长度为 nbins + 1(nbins 个左边缘和最后一个箱的右边缘)。即使传入多个数据集,也始终是一个单独的数组。

patchesBarContainer 或单个 Polygon 的列表或此类对象的列表

用于创建直方图的单个艺术家容器,如果存在多个输入数据集,则为此类容器的列表。

其他参数:
data可索引对象,可选

如果给定,以下参数也接受字符串 s,如果 sdata 中的一个键,则将其解释为 data[s]

x, weights

**kwargs

Patch 属性。以下属性还接受与 *x* 中数据集相对应的值序列:edgecolorfacecolorlinewidthlinestylehatch

3.10 版本新增:允许在上述 Patch 属性中使用值序列。

另请参阅

hist2d

2D histogram with rectangular bins

hexbin

带六边形分箱的二维直方图

stairs

绘制预计算的直方图

bar

绘制预计算的直方图

备注

对于大量箱(>1000),可以通过使用 stairs 绘制预计算的直方图(plt.stairs(*np.histogram(data))),或将 *histtype* 设置为 'step' 或 'stepfilled' 而非 'bar' 或 'barstacked' 来显著加速绘图。

使用 matplotlib.axes.Axes.hist 的示例#

动画直方图

动画直方图

使用可定位坐标轴将直方图对齐散点图

使用可定位坐标轴将直方图对齐散点图

带直方图的散点图

带直方图的散点图

使用矩形和多边形集合构建直方图

使用矩形和多边形集合构建直方图

直方图

直方图

双直方图

双直方图

累积分布

累积分布

直方图函数不同 histtype 设置的演示

直方图函数不同 histtype 设置的演示

具有多个数据集的直方图 (hist) 函数

具有多个数据集的直方图 (hist) 函数

直方图箱、密度和权重

直方图箱、密度和权重

《黑客的贝叶斯方法》样式表

《黑客的贝叶斯方法》样式表

坐标轴演示

坐标轴演示

放置文本框

放置文本框

hist(x)

hist(x)

Artist 教程

Artist 教程

路径教程

路径教程

变换教程

变换教程

快速入门指南

快速入门指南