Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

hist

直方图(不推荐;请改用 histogram

不推荐使用 hist。请改用 histogram

有关详细信息(包括有关更新代码的建议),请参阅替换不建议使用的 hist 和 histc 实例

说明

示例

hist(x) 基于向量 x 中的元素创建直方图条形图。x 中的元素有序划分入 x 轴上介于 x 的最小值和最大值间的 10 个等间距 bin 中。hist 将 bin 显示为矩形,这样每个矩形的高度就表示 bin 中的元素数量。

如果输入是多列数组,则 hist 为每列 x 创建直方图并将它们叠加到一个绘图上。

如果输入为 categorical 数据类型,则每个 bin 是一个 x 类别。

示例

hist(x,nbins)x 有序划分入标量 nbins 所指定数量的 bin 中。

hist(x,xbins) 使用由向量 xbins 确定的间隔或类别将 x 有序划分入 bin 中。

  • 如果 xbins 是一个包含等间距值的向量,则 hist 将使用这些值作为直方图中心。

  • 如果 xbins 是一个包含非等间距值的向量,则 hist 将使用连续值之间的中点作为 bin 边界。

  • 如果 x 的数据类型为 categorical,则 xbins 必须是用于指定类别的分类向量或字符向量元胞数组。hist 仅为这些类别绘制条形图。

向量 xbins 的长度等于 bin 的数量。

hist(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于上述语法中的任何输入参数组合之前。

counts = hist(___) 返回一个行向量 counts,指示每个 bin 中的元素数目。

示例

[counts,centers] = hist(___) 返回一个附加行向量 centers,指示 x 轴上每个 bin 中心的位置。

示例

全部折叠

x = [0 2 9 2 5 8 7 3 1 9 4 3 5 8 10 0 1 2 9 5 10];
hist(x)

Figure contains an axes object. The axes object contains an object of type patch. This object represents x.

histx 中的值有序划分入介于向量中最小值和最大值间的 10 个等间距 bin 中,在本例中,最小值是 0,最大值是 10。

生成由 1,000 个随机数组成的三列并绘制三列叠加的直方图。

x = randn(1000,3); 
hist(x)

Figure contains an axes object. The axes object contains 3 objects of type patch. These objects represent x(:,1), x(:,2), x(:,3).

x 中的值将有序划分入介于最小值和最大值间的 10 个等间距 bin 中。hist 分别对 x 的各列排序、存储,并使用不同的颜色绘制每列。

对分类为 50 个等距 bin 的 1,000 个随机数绘制直方图。

x = randn(1000,1);  
nbins = 50;
hist(x,nbins)

Figure contains an axes object. The axes object contains an object of type patch. This object represents x.

生成 1,000 个随机数。计算 10 个等间距 bin 的每一个中有多少个数字。返回 bin 计数和 bin 中心。

x = randn(1000,1);  
[counts,centers] = hist(x)
counts = 1×10

     4    27    88   190   270   243   123    38    13     4

centers = 1×10

   -2.8915   -2.2105   -1.5294   -0.8484   -0.1673    0.5137    1.1947    1.8758    2.5568    3.2379

使用 bar 绘制直方图。

bar(centers,counts)

Figure contains an axes object. The axes object contains an object of type bar.

生成 1,000 个随机数并创建直方图。

data = randn(1000,1);
hist(data)

Figure contains an axes object. The axes object contains an object of type patch. This object represents data.

获取用于创建直方图的补片对象的句柄。

h = findobj(gca,'Type','patch');

将已绘制条形的面颜色设置为 RGB 三元值 [0 0.5 0.5]。将边颜色设置为白色。

h.FaceColor = [0 0.5 0.5];
h.EdgeColor = 'w';

Figure contains an axes object. The axes object contains an object of type patch. This object represents data.

输入参数

全部折叠

输入向量或矩阵。

  • 如果 x 是向量,hist 创建一个直方图。

  • 如果 x 为矩阵,则 hist 为每列创建一个单独的直方图并使用不同的颜色绘制直方图。

如果输入数组包含 NaN 或未定义的分类值,则 hist 不将这些值计入 bin 计数内。

如果输入数组包含无限值 -InfInf,则 hist 会将 -Inf 有序划分入第一个 bin,将 Inf 有序划分入最后一个 bin。如果未指定 bin 间隔,则 hist 仅使用输入数组中的有限值计算 bin 间隔。

数据类型: single|double|logical|categorical

bin 数量。输入 x 必须是数值,不是分类数组。

数据类型: single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

bin 位置或类别,指定为向量。

如果 x 为数值或逻辑值,则 xbins 必须属于 singledouble 类型。

  • 如果 xbins 中的元素是等间距的,则这些元素是 bin 的中心。

  • 如果 xbins 中的元素不是等间距的,则这些元素由 x 轴上的标记指示,但并不是实际 bin 中心。相反,hist 将 bin 边界计算为向量 xbins 中各连续元素之间的中点。要直接指定 bin 边界,请使用 histc

  • xbins 必须仅包含有限值。第一个和最后一个 bin 的展开范围包括了 x 中的最小值和最大值。

如果 x 为分类数据,则 xbins 必须是用于指定类别的分类向量或字符向量元胞数组。hist 仅为 xbins 指定的那些类别绘制条形图。

坐标区对象。使用 ax 在特定的坐标区而不是当前坐标区 (gca) 中绘制该直方图。

输出参数

全部折叠

每个 bin 中的元素计数,以行向量形式返回。

bin 中心或类别,以向量的形式返回。如果和语法 [counts,centers] = hist(x,xbins) 一起使用,则 centers 输出具有与 xbins 输入相同的元素。

  • 如果 x 为数值或逻辑值,则 centers 为数值行向量。

  • 如果 x 为分类数据,则 centers 为字符向量元胞数组。

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | | | |