Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

binscatter

分 bin 散点图

说明

示例

binscatter(x,y) 显示向量 xy 的分 bin 散点图。分 bin 散点图将数据空间分成多个矩形 bin,并用不同颜色显示每个 bin 中的数据点数。放大绘图时,bin 的尺寸会自动调整,以显示更清晰的分辨率。

示例

binscatter(x,y,N) 指定要使用的 bin 数。N 可以是标量或二元素向量 [Nx Ny]。如果 N 是标量,则 NxNy 都设置为标量值。每个维度中的最大 bin 数为 250。

binscatter(___,Name,Value) 使用一个或多个名称-值对组参数指定属性值。例如,您可以将 'ShowEmptyBins' 指定为 'on',以便对无数据点的区域进行着色。有关属性的完整列表,请参阅 Binscatter 属性。可将此选项与上述语法中的任何输入参数组合一起使用。

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

示例

h = binscatter(___) 返回 Binscatter 对象。使用此对象可检查和调整分 bin 散点图的属性。

示例

全部折叠

xy 维上生成随机数,并创建分 bin 散点图。binscatter 函数会自动选择合适的 bin 数量,以便涵盖数据中的值范围。

x = randn(1e6,1);
y = 2*x + randn(1e6,1);
binscatter(x,y)

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

绘制包含 10,000 个随机数的分 bin 散点图,这些随机数划分到 x 维的 30 个 bin 和 y 维的 10 个 bin 中。

rng default % for reproducibility
x = randn(1e4,1);
y = randn(1e4,1);
h = binscatter(x,y,[30 10]);

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

求 bin 计数。结果是一个矩阵,其左上方的元素对应于绘图中左下方的 bin 计数。x 维上的 bin 对应于矩阵行,y 维上的 bin 对应于矩阵列。

counts = h.Values;

创建一些随机数据点的分 bin 散点图。

x = randn(1e5,1);
y = randn(1e5,1);
binscatter(x,y)

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

默认颜色图范围从浅色(小值)到深色(大值)。改用以深色表示小值的颜色图更容易发现离群值。

可以使用 colormap 函数更改绘图中的颜色。使用 gca 传入当前坐标区句柄。

colormap(gca,'parula')

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

生成 1000 个随机数并创建分 bin 散点图。返回 Binscatter 对象以调整绘图的属性,而不用重新创建整个绘图。

x = randn(1000,1);
y = randn(1000,1);
h = binscatter(x,y)

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

h = 
  Binscatter with properties:

      NumBins: [11 11]
    XBinEdges: [1x12 double]
    YBinEdges: [1x12 double]
       Values: [11x11 double]
      XLimits: [-3.2764 3.6305]
      YLimits: [-3.1155 3.6168]
    FaceAlpha: 1

  Show all properties

准确指定每个方向要使用的 bin 数量。

h.NumBins = [20 30];

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

开启绘图中空 bin 的显示。

h.ShowEmptyBins = 'on';

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

使用 XLimitsYLimits 属性指定坐标区的范围。然后使用向量限制 x 方向的 bin 范围。

xlim(gca,h.XLimits); 
ylim(gca,h.YLimits); 
h.XLimits = [-1 1];

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

输入参数

全部折叠

输入向量,指定为具有相同长度的实数向量。

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

bin 数量,指定为标量或二元素向量 [Nx Ny]

  • 如果 N 是一个二元素向量 [Nx Ny],则 binscatter 在 x 维度上划分 Nx 个 bin,在 y 维度上划分 Ny 个 bin。

  • 如果 N 是标量,则 NxNy 都设置为标量值。

未放大坐标区时,binscatter 在初始绘图上沿 x 和 y 维度分别划分 NxNy 个 bin。(当 XLimModeYLimMode 属性都设置为 'auto' 时,不会放大坐标区。)缩放时,binscatter 将调整 bin 的数量,以保持一个合适的 bin 大小,使绘图的可见部分大约划分为 Nx×Ny 个 bin。

每个维度中的最大 bin 数为 250。默认 bin 数量是根据数据大小和标准差计算得出的,不超过 100。

示例: [10 20]

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

目标坐标区,指定为 Axes 对象。如果您不指定坐标区,则 binscatter 使用当前坐标区 (gca)。

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: binscatter(x,y,'ShowEmptyBins','on') 会开启绘图中空 bin 的显示。

此处所列的属性只是一部分。有关完整列表,请参阅 Binscatter 属性

x 维度的数据范围,指定为二元素向量 [Xmin Xmax]

binscatter 仅显示落在指定数据范围 XminXXmax(含边界值)内的数据点。

示例: [0 10]

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

y 维度的数据范围,指定为二元素向量 [Ymin Ymax]

binscatter 仅显示落在指定数据范围 YminYYmax(含边界值)内的数据点。

示例: [0 10]

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

开启或关闭空 bin 的显示,指定为 'off''on',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

如果指定 'on'true,将为绘图中落在 bin 范围内但无数据点的图块着色。

输出参数

全部折叠

Binscatter 对象。使用此对象可检查和调整绘图的属性。有关属性的完整列表,请参阅 Binscatter 属性

提示

  • 当几个 bin 控制整个绘图时,将坐标区的 ColorScale 属性更改为 'log' 可以产生更好的 bin 着色。

    ax = gca;
    ax.ColorScale = 'log';

扩展功能

在 R2017b 中推出