Main Content

daspect

控制沿每个轴的数据单位长度

说明

示例

daspect(ratio) 设置当前坐标区的数据纵横比。数据纵横比是沿 x 轴、y 轴和 z 轴的数据单位的相对长度。指定 ratio 为一个由正值组成的三元素向量,这些正值表示沿每个轴的数据单位的相对长度。例如,[1 2 3] 表示沿 x 轴从 0 到 1 的长度等于沿 y 轴从 0 到 2 的长度和沿 z 轴 0 到 3 的长度。若要在所有方向上采用相同的数据单位长度,请使用 [1 1 1]

示例

d = daspect 返回当前坐标区的数据纵横比。

示例

daspect auto 设置自动模式,允许坐标区选择数据纵横比。模式必须为自动,才能启用坐标区的“伸展填充”功能。

daspect manual 设置手动模式,并使用 Axes 对象的 DataAspectRatio 属性中存储的纵横比。当模式为手动时,它会禁用坐标区的“伸展填充”行为。指定数据纵横比的值会将模式设置为手动。

示例

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

示例

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

示例

全部折叠

绘制一组数据。通过将数据纵横比设置为 [1 1 1],在所有方向上使用相等的数据单位长度。

t = linspace(0,2*pi);
x = cos(t);
y = sin(t);
plot(x,y)
daspect([1 1 1])

绘制一组数据。设置数据纵横比,使 x 轴方向的一个数据单位的长度等于 y 轴方向和 z 轴方向(不显示)的两个数据单位的长度。

t = linspace(0,2*pi);
x = cos(t);
y = sin(t);
plot(x,y)
daspect([1 2 2])

当您设置数据纵横比时,相关联的模式会更改为手动。查询当前数据纵横比模式。

d = daspect('mode')
d = 
'manual'

创建一个由随机数据构成的三维散点图,并设置数据纵横比。然后还原为默认的数据纵横比。

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

daspect auto

创建一个曲面图并查询数据纵横比。

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

d = daspect
d = 1×3

     4     4     1

比率表示 x 轴方向的四个单位的长度等于 y 轴方向的四个单位和 z 轴方向的一个单位的长度。例如,如果纵横比为 [4 4 1],则 x 轴上从 0 到 1 的长度等于 y 轴上从 0 到 1 的长度以及 z 轴上从 0 到 0.25 的长度。

创建一个包含 ax1ax2 坐标区的 2×1 分块图布局。在坐标区中绘图,并通过指定 ax2daspect 函数的第一个输入参量,设置下部图的数据纵横比。

tiledlayout(2,1)
ax1 = nexttile;
plot(ax1,1:10)

ax2 = nexttile;
plot(ax2,1:10)
daspect(ax2,[1 2 1])

输入参数

全部折叠

数据纵横比,指定为由正值组成的三元素向量。例如,daspect([1 2 3]) 指定沿 x 轴的一个单位长度等于沿 y 轴的两个单位长度和沿 z 轴的三个单位长度。

指定数据纵横比会设置 Axes 对象的 DataAspectRatio 属性。DataAspectRatio 属性与 PlotBoxAspectRatioXLimYLimZLim 属性交互作用,以控制 x 轴、y 轴和 z 轴的长度和缩放。

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

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

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

输出参量

全部折叠

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

查询数据纵横比将返回相应 Axes 对象的 DataAspectRatio 属性值。

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

查询数据纵横比模式将返回相应 Axes 对象的 DataAspectRatioMode 属性值。

详细信息

全部折叠

伸展填充

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

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

算法

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

  • DataAspectRatio - 存储数据纵横比值的属性。

  • DataAspectRatioMode - 存储数据纵横比模式的属性。如果您设置了纵横比,此属性将更改为 'manual'

版本历史记录

在 R2006a 之前推出