Main Content

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

zlim

设置或查询 z 坐标轴范围

说明

特定范围

示例

zlim(limits) 设置当前坐标区的 z 坐标轴范围。将 limits 指定为 [zmin zmax] 形式的二元素向量,其中 zmax 大于 zmin

示例

zl = zlim 以二元素向量形式返回当前范围。

自动或手动范围选择

示例

zlim(limitmethod) 指定 MATLAB® 用于自动范围选择的限制方法。将限制方法指定为 'tickaligned''tight''padded'。MATLAB 将坐标区的 ZLimitMethod 属性设置为您指定的值。

您可以指定不带括号的 limitmethod 参数。例如,zlim tight 启用紧凑的 z 轴范围。

示例

zlim(limitmode) 指定自动或手动范围选择。limitmode 可以具有下列值之一:

  • 'auto' - 启用自动范围选择。MATLAB 根据数据范围和坐标区的 ZLimitMethod 属性值选择范围。如果您多次在坐标区中绘图,范围会更新以涵盖所有数据。

  • 'manual' - 将 z 轴范围冻结在当前值。

您可以指定不带括号的 limitmode 参数。例如,zlim auto 启用自动范围选择。

m = zlim('mode') 返回当前 z 坐标轴范围模式:'auto''manual'。默认情况下,该模式为自动,除非您指定范围或将模式设置为手动。

目标坐标区或图

示例

___ = zlim(ax,___) 使用 ax 指定的坐标区,而不是使用当前坐标区。指定 ax 作为上述任何语法的第一个输入参数。如果原始语法支持输出参数,则可以包含输出参数。模式输入应放在单引号内,例如 zlim(ax,'auto')

示例

全部折叠

绘制一个曲面,并将 z 坐标轴范围设置为从 -5 至 5。

[X,Y,Z] = peaks;
surf(X,Y,Z);
zlim([-5 5])

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

创建网格曲面图并仅显示大于 0 的 z 值。将最小 z 轴范围指定为 0,并由 MATLAB 选择最大范围。

[X,Y,Z] = peaks;
mesh(X,Y,Z)
zlim([0 inf])

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

创建 peaks 数据集的曲面图。调整图框的视图,以便可以从侧面看到曲面。

surf(peaks)
view([-45 15])

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

调整 z 轴范围以减少曲面上下的空间。将限制方法更改为 'tight'

zlim tight

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

从 R2019b 开始,您可以使用 tiledlayoutnexttile 函数显示分块图。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1ax2。在每个坐标区中绘制数据。然后通过将 ax2 指定为 zlim 的第一个输入参数,设置底部图的 z 坐标轴范围。

[X,Y,Z] = peaks;
tiledlayout(2,1)
ax1 = nexttile;
surf(X,Y,Z)

ax2 = nexttile;
surf(X,Y,Z)
zlim(ax2,[-5 5])

Figure contains 2 axes. Axes 1 contains an object of type surface. Axes 2 contains an object of type surface.

当将更多绘图添加到坐标区时,使用手动模式可保持当前 z 坐标轴范围。

首先创建一个三维散点图。

theta = linspace(0,2*pi);
X = cos(theta);
Y = sin(theta);
Z = theta;
scatter3(X,Y,Z)

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

设置 z 坐标轴范围模式,以便范围不发生变化。使用 hold on 将第二个绘图添加到坐标区。

zlim manual
hold on 
Znew = 5*theta;
scatter3(X,Y,Znew)
hold off

Figure contains an axes. The axes contains 2 objects of type scatter.

z 坐标轴范围不会更新以包含该新绘图。

通过将模式设置为自动来重新切换回自动更新的范围。

zlim auto

Figure contains an axes. The axes contains 2 objects of type scatter.

创建一个由随机数据组成的三维散点图。返回 z 坐标轴范围的值。

x = randn(50,1);
y = randn(50,1);
z = randn(50,1);
scatter3(x,y,z)

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

zl = zlim
zl = 1×2

    -3     3

输入参数

全部折叠

最小和最大范围,指定为 [zmin zmax] 形式的二元素向量,其中 zmax 大于 zmin。您可以将范围指定为数字、分类、日期时间或持续时间值。但是,您指定的值的类型必须匹配 z 轴的值的类型。

您可以指定这两个范围,也可以指定一个范围而让 MATLAB 自动计算另一个范围。对于自动计算的最小或最大范围,请分别使用 -infinf。MATLAB 使用 'tight' 范围方法计算对应的范围。

示例: zlim([0 1])

示例: zlim([-inf 1])

示例: zlim([0 inf])

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

范围选择方法,指定为下表中的值之一。

下表中的示例展示每种方法的大致外观。根据您的数据、坐标区的大小、图框的视角和您创建的绘图类型,结果可能会有所不同。

说明示例
'tickaligned'

通常,将坐标区框的边缘与最接近数据的刻度线对齐,但不排除任何数据。外观可能因绘制的数据类型和创建的图类型而异。

Plotted surface with 'tickaligned' limit method.

'tight'

将坐标轴范围设置为数据范围,使坐标区框紧密贴合数据。

Plotted surface with 'tight' limit method.

'padded'

使坐标区框贴合数据,每侧只留很窄的填充边距。边距的宽度大约是数据范围的 7%。

Plotted surface with 'padded' limit method.

注意

当坐标区的 ZLimMode 属性设置为 'manual' 时,限制方法不起作用。

范围模式,指定为下列值之一:

  • 'auto' - 启用自动范围选择,具体范围基于数据的总跨度和坐标区的 ZLimitMethod 属性的值。如果您多次在坐标区中绘图,范围会更新以涵盖所有数据。如果更改了范围,然后又想将它们设置回默认值,您可以使用此选项。

  • 'manual' - 将范围冻结在当前值。当使用 hold on 命令向坐标区添加新数据时,如果要保留当前范围,请使用此选项。

当您指定此参数时,MATLAB 会将坐标区的 ZLimMode 属性设置为您指定的值。但是,无论何时通过调用 zlim(limits) 或通过设置坐标区上 ZLim 属性的值来显式设置 z 轴范围时,ZLimMode 属性都会更改为 'manual'

目标坐标区,指定为 Axes 对象或 Axes 对象数组。

如果不指定此参数,则 zlim 会设置当前坐标区的范围。

输出参数

全部折叠

当前范围,返回为 [zmin zmax] 形式的一个二元素向量。

查询范围时将返回对应 Axes 对象的 ZLim 属性值。

当前范围模式,返回为下列值之一:

  • 'auto' - 自动确定范围。

  • 'manual' - 使用手动指定的范围,这些范围不会更新以反映数据的变化。

查询 z 坐标轴范围模式时将返回对应 Axes 对象的 ZLimMode 属性值。

算法

zlim 函数设置并查询与 z 坐标轴范围有关的多个坐标区属性。

  • ZLim - 用于存储 z 坐标轴范围的属性。

  • ZLimMode - 用于存储 z 坐标轴范围模式的属性。设置 z 坐标轴范围时,此属性更改为 'manual'

  • ZLimitMethod - 控制当 ZLimMode 属性设置为 'auto' 时如何计算 z 轴范围的属性。

在 R2006a 之前推出