本文简要介绍 python 语言中 matplotlib.axes.Axes.hist
的用法。
-
计算并绘制直方图。
此方法使用
numpy.histogram
对x
中的数据进行分箱,并计算每个分箱中的值数量,然后将分布绘制为BarContainer
或Polygon
。bins
、range
、density
和weights
参数转发到numpy.histogram
。如果数据已经分箱和计数,请使用
bar
或stairs
绘制分布图:counts, bins = np.histogram(x) plt.stairs(counts, bins)
或者,使用
hist()
绘制预先计算的 bin 和计数,将每个 bin 视为权重等于其计数的单个点:plt.hist(bins[:-1], bins, weights=counts)
数据输入
x
可以是单一数组、可能不同长度的数据集列表([x0
、x1
、...]),或者每列都是一个数据集的 2D ndarray。请注意,ndarray 形式相对于列表形式是转置的。如果输入是数组,则返回值是元组(n
、bins
、patches
);如果输入是数组序列,则返回值是一个元组 ([n0
,n1
, ...],bins
, [patches0
,patches1
, ...])。不支持屏蔽数组。
- 参数:
- x (n,) 数组或 (n,) 数组序列
-
输入值,这需要单个数组或不需要具有相同长度的数组序列。
- bins int 或序列或 str,默认值:
rcParams["hist.bins"]
(默认值:10
) -
如果
bins
是整数,则它定义范围内equal-width 箱的数量。如果
bins
是一个序列,它定义了bin边,包括第一个bin的左边和最后一个bin的右边;在这种情况下,箱子的间距可能不均匀。除了最后一个 (righthand-most) 箱子外,所有箱子都是半开的。换句话说,如果bins
是:[1, 2, 3, 4]
那么第一个 bin 是
[1, 2)
(包括 1,但不包括 2),第二个 bin 是[2, 3)
。然而,最后一个 bin 是[3, 4]
,其中includes
4。如果
bins
是字符串,则它是numpy.histogram_bin_edges
支持的分箱策略之一:'auto', 'fd', 'doane', 'scott', 'stone', 'rice', 'sturges'或'sqrt'。 - range 元组或无,默认:无
-
箱子的下限和上限范围。较低和较高的异常值将被忽略。如果未提供,则
range
为(x.min(), x.max())
。如果bins
是序列,则范围无效。如果
bins
是序列或指定了range
,则自动缩放基于指定的 bin 范围而不是 x 的范围。 - density 布尔值,默认值:假
-
如果
True
,绘制并返回概率密度:每个 bin 将显示该 bin 的原始计数除以计数总数and the bin width
(density = counts / (sum(counts) * np.diff(bins))
),以便直方图下方的面积积分为 1 (np.sum(density * np.diff(bins)) == 1
)。如果
stacked
也是True
,则直方图的总和标准化为 1。 - weights (n,) 类似数组或无,默认值:无
-
权重数组,其形状与
x
相同。x
中的每个值仅对 bin 计数贡献其相关权重(而不是 1)。如果density
为True
,则对权重进行归一化,以便密度在该范围内的积分保持为 1。 - cumulative 布尔或-1,默认值:False
-
如果
True
,则计算直方图,其中每个箱给出该箱中的计数以及较小值的所有箱。最后一个 bin 给出了数据点的总数。如果
density
也是True
,则对直方图进行归一化,使最后一个 bin 等于 1。如果
cumulative
是小于0的数字(例如-1),则累加方向相反。在这种情况下,如果density
也是True
,则对直方图进行归一化,使第一个 bin 等于 1。 - bottom 类似数组、标量或无,默认值:无
-
每个 bin 底部的位置,即 bin 从
bottom
绘制到bottom + hist(x, bins)
如果是标量,则每个 bin 的底部移动相同的量。如果是数组,则每个 bin 独立移动,并且底部的长度必须与 bin 的数量匹配。如果无,则默认为 0。 - histtype {'bar', 'barstacked', 'step', 'stepfilled'},默认:'bar'
-
要绘制的直方图的类型。
-
'bar' 是传统的bar-type 直方图。如果给出多个数据,则条形图并排排列。
-
'barstacked' 是 bar-type 直方图,其中多个数据相互堆叠。
-
'step' 生成默认未填充的线图。
-
'stepfilled' 生成默认填充的线图。
-
- align {'left', 'mid', 'right'},默认:'mid'
-
直方图条的水平对齐方式。
-
'left':条形图位于左侧 bin 边的中心。
-
'mid':条形图位于 bin 边之间的中心。
-
'right':条形图位于右侧 bin 边的中心。
-
- orientation {'vertical', 'horizontal'},默认:'vertical'
-
如果'horizontal',
barh
将用于bar-type直方图,bottom
kwarg将是左边。 - rwidth float 或 None,默认值:None
-
条形的相对宽度占 bin 宽度的一部分。如果是
None
,则自动计算宽度。如果
histtype
是'step' 或'stepfilled',则忽略。 - log 布尔值,默认值:假
-
如果
True
,直方图轴将设置为对数刻度。 - color 颜色或类似颜色的数组或无,默认值:无
-
颜色或颜色序列,每个数据集一个。默认 (
None
) 使用标准线条颜色序列。 - label str 或 None,默认值:None
-
字符串,或匹配多个数据集的字符串序列。条形图为每个数据集生成多个补丁,但只有第一个获得标签,因此
legend
将按预期工作。 - stacked 布尔值,默认值:假
-
如果
True
,则多个数据堆叠在一起 如果False
如果 histtype 为 'bar',则多个数据并排排列;如果 histtype 为 'step',则多个数据并排排列
- 返回:
- n 数组或数组列表
-
直方图箱的值。有关可能语义的说明,请参阅
density
和weights
。如果输入x
是一个数组,则这是一个长度为nbins
的数组。如果输入是数组序列[data1, data2, ...]
,则这是一个数组列表,其中每个数组的直方图值的顺序相同。即使不使用加权或标准化,数组n
(或其元素数组)的数据类型也将始终为浮点型。 - bins 数组
-
箱子的边。长度 nbins + 1(最后一个 bin 的 nbins 左边和右边)。即使传入多个数据集,也始终是单个数组。
- patches
BarContainer
或单个Polygon
的列表或此类对象的列表 -
如果有多个输入数据集,则用于创建此类容器的直方图或列表的各个艺术家的容器。
- 其他参数:
- data 可索引对象,可选
-
如果给出,以下参数还接受字符串
s
,该字符串被解释为data[s]
(除非这引发异常):x
,weights
- **kwargs
-
Patch
属性
注意
对于大量 bin (>1000),通过使用
stairs
绘制预先计算的直方图 (plt.stairs(*np.histogram(data))
) 可以显著加速绘图速度。或者将histtype
设置为'step'或'stepfilled',而不是'bar'或'barstacked'。
用法
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)
相关用法
- Python matplotlib Axes.get_legend_handles_labels用法及代码示例
- Python matplotlib Axes.step用法及代码示例
- Python matplotlib Axes.contour用法及代码示例
- Python matplotlib Axes.plot用法及代码示例
- Python matplotlib Axes.semilogx用法及代码示例
- Python matplotlib Axes.semilogy用法及代码示例
- Python matplotlib Axes.inset_axes用法及代码示例
- Python matplotlib Axes.axis用法及代码示例
- Python matplotlib Axes.barbs用法及代码示例
- Python matplotlib Axes.tripcolor用法及代码示例
- Python matplotlib Axes.set_prop_cycle用法及代码示例
- Python matplotlib Axes.axline用法及代码示例
- Python matplotlib Axes.tick_params用法及代码示例
- Python matplotlib Axes.axvspan用法及代码示例
- Python matplotlib Axes.contourf用法及代码示例
- Python matplotlib Axes.tricontourf用法及代码示例
- Python matplotlib Axes.locator_params用法及代码示例
- Python matplotlib Axes.set_ylim用法及代码示例
- Python matplotlib Axes.loglog用法及代码示例
- Python matplotlib Axes.text用法及代码示例
- Python matplotlib Axes.boxplot用法及代码示例
- Python matplotlib Axes.triplot用法及代码示例
- Python matplotlib Axes.tricontour用法及代码示例
- Python matplotlib Axes.arrow用法及代码示例
- Python matplotlib Axes.set_xlim用法及代码示例
注:本文由纯净天空筛选整理自skytowner.com大神的英文原创作品 matplotlib.axes.Axes.hist。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。