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)

绘制包含 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]);

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

counts = h.Values;

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

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

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

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

colormap(gca,'parula')

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

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

h = 
  Binscatter with properties:

      NumBins: [11 11]
    XBinEdges: [-3.2764 -2.6485 -2.0206 -1.3927 -0.7648 -0.1369 0.4910 1.1189 1.7468 2.3747 3.0026 3.6305]
    YBinEdges: [-3.1155 -2.5034 -1.8914 -1.2794 -0.6674 -0.0553 0.5567 1.1687 1.7808 2.3928 3.0048 3.6168]
       Values: [11x11 double]
      XLimits: [-3.2764 3.6305]
      YLimits: [-3.1155 3.6168]
    FaceAlpha: 1

  Use GET to show all properties

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

h.NumBins = [20 30];

开启绘图中空 bin 的显示。

h.ShowEmptyBins = 'on';

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

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

输入参数

全部折叠

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

数据类型: 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)。

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 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 中推出