Main Content

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

pbaspect

控制每个轴的相对长度

说明

示例

pbaspect(ratio) 设置当前坐标区的图框纵横比。图框纵横比是 x 轴、y 轴和 z 轴的相对长度。将 ratio 指定为由正值组成的三元素向量,以表示 x 轴、y 轴和 z 轴长度的比率。例如,[3 1 1] 指定 x 轴的长度等于 y 轴和 z 轴长度的三倍。如需轴长度在所有方向上都相等,请使用 [1 1 1]

示例

pb = pbaspect 返回当前坐标区的图框纵横比。

示例

pbaspect auto 设置自动模式,从而允许坐标区选择适当的图框纵横比。模式必须为自动,才能启用坐标区的“伸展填充”功能。

pbaspect manual 设置手动模式,并使用 Axes 对象的 PlotBoxAspectRatio 属性中存储的比率。当模式为手动时,它会禁用坐标区的伸展填充功能。指定图框纵横比的值会将模式设置为手动。

示例

m = pbaspect('mode') 返回当前模式,即 'auto''manual'。默认情况下,该模式为自动,除非您指定图框纵横比或将模式设置为手动。

示例

___ = pbaspect(ax,___) 使用 ax 指定的坐标区,而不是使用当前坐标区。指定坐标区作为以上任何语法的第一个输入参数。使用单引号将 'auto''manual' 输入引起来。

示例

全部折叠

创建一个简单的线图。使 x 轴、y 轴和 z 轴(不显示)长度相等。

x = linspace(0,10);
y = sin(x);
plot(x,y)
pbaspect([1 1 1])

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

绘制一个曲面,并使 x 轴的长度是 y 轴和 z 轴的两倍。

[x,y] = meshgrid(-2:.2:2);
z = x.*exp(-x.^2 - y.^2);
surf(x,y,z)
pbaspect([2 1 1])

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

当您指定图框纵横比时,相关联的模式将更改为手动。查询当前图框纵横比模式。

m = pbaspect('mode')
m = 
'manual'

创建随机数据的三维散点图并设置图框纵横比。然后还原为默认图框纵横比。

X = rand(100,1);
Y = rand(100,1);
Z = rand(100,1);
scatter3(X,Y,Z)
pbaspect([3 2 1])

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

pbaspect auto

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

创建一个曲面图。

[x,y] = meshgrid(-2:.2:2);
z = x.*exp(-x.^2 - y.^2);
surf(x,y,z)

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

查询图框纵横比。这些值指示 x 轴长度、y 轴长度与 z 轴长度的比率。

pb = pbaspect
pb = 1×3

    1.0000    0.9411    0.8496

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

tiledlayout(2,1)
ax1 = nexttile;
mesh(peaks(20))

ax2 = nexttile;
mesh(peaks(20))
pbaspect(ax2,[2 2 1])

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

输入参数

全部折叠

图框纵横比,指定为由正值组成的三元素向量。例如,pbaspect([3 2 1]) 指定 x 轴长度、y 轴长度和 z 轴长度的比率为 3:2:1。因此,x 轴最长,z 轴最短。

指定比率可将 Axes 对象的 PlotBoxAspectRatio 属性设置为指定的值。PlotBoxAspectRatio 属性与 DataAspectAspectRatioXLimYLimZLim 属性交互作用,以控制 x 轴、y 轴和 z 轴的长度和缩放。

指定纵横比会将 PlotBoxAspectRatioMode 属性设置为 'manual' 并禁用坐标区的伸展填充行为。

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

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

输出参数

全部折叠

当前图框纵横比,以三元素向量值的形式返回,表示 x 轴、y 轴和 z 轴长度的比率。

查询图框纵横比模式将返回 Axes 对象的 PlotBoxAspectRatio 属性值。

当前图框纵横比模式,以 'auto''manual' 的形式返回。当模式为自动时,MATLAB® 将确定适当的图框纵横比值。如果您指定值,则模式更改为手动。

查询图框纵横比模式将返回 Axes 对象的 PlotBoxAspectRatioMode 属性值。

详细信息

全部折叠

伸展填充

如果启用了“伸展填充”行为,MATLAB 会伸展坐标区以占满可用空间。坐标区可能与其 DataAspectRatioPlotBoxAspectRatioCameraViewAngle 属性中存储的数据纵横比、绘图框纵横比和相机视角值不完全匹配。

如果您指定数据纵横比、绘图框纵横比或相机视角,则会禁用“伸展填充”行为。如果禁用伸展填充,MATLAB 会使坐标区在可用空间内尽可能大并严格遵循属性值,不会出现扭曲。有关详细信息,请参阅控制坐标区布局

算法

pbaspect 函数设置并查询与数据纵横比有关的多个坐标区属性。

在 R2006a 之前推出