# pbaspect
控制每个轴的相对长度
函数库: TyPlot
# 语法
pbaspect(ratio)
pb = pbaspect()
pbaspect("auto")
___ = pbaspect(ax,___)
# 说明
pbaspect(ratio) 设置当前坐标区的图框纵横比。图框纵横比是 x 轴、y 轴和 z 轴的相对长度。将 ratio 指定为由正值组成的三元素向量,以表示 x 轴、y 轴和 z 轴长度的比率。例如,[3 1 1] 指定 x 轴的长度等于 y 轴和 z 轴长度的三倍。如需轴长度在所有方向上都相等,请使用 [1 1 1]。示例
pb=pbaspect() 返回当前坐标区的图框纵横比。示例
pbaspect("auto") 设置自动模式,从而允许坐标区选择适当的图框纵横比。模式必须为自动,才能启用坐标区的“伸展填充”功能。示例
___ = pbaspect(ax,___) 使用 ax 指定的坐标区,而不是使用当前坐标区。指定坐标区作为以上任何语法的第一个输入参数。示例
# 示例
使用相等的轴长度
创建一个简单的线图。使 x 轴、y 轴和 z 轴(不显示)长度相等。
using TyPlot
x = LinRange(0, 10, 50);
y = sin.(x);
plot(x, y)
pbaspect([1 1 1])

使用不同的轴长度
绘制一个曲面,并使 x 轴的长度是 y 轴和 z 轴的两倍。
using TyBase
using TyPlot
xs = collect(-2:0.2:2)
ys = collect(-2:0.2:2)
x, y = meshgrid2(xs, ys);
z = x .* exp.(-x .^ 2 - y .^ 2);
surf(x, y, z)
pbaspect([2 1 1])

还原为默认图框纵横比
创建随机数据的三维散点图并设置图框纵横比。然后还原为默认图框纵横比。
using TyPlot
X = rand(100,1);
Y = rand(100,1);
Z = rand(100,1);
scatter3(X,Y,Z)
pbaspect([3 2 1])
pbaspect("auto")

查询图框纵横比
创建一个曲面图。
using TyBase
using TyPlot
xs = collect(-2:0.2:2)
ys = collect(-2:0.2:2)
x, y = meshgrid2(xs, ys);
z = x .* exp.(-x .^ 2 - y .^ 2);
surf(x, y, z)
查询图框纵横比。这些值指示 x 轴长度、y 轴长度与 z 轴长度的比率。
d = pbaspect()
为特定坐标区设置图框纵横比
调用 subplot 函数以创建一个 2×1 分块图布局和一个坐标区对象,创建坐标区对象 ax1 和 ax2。在每个坐标区中绘制。然后通过将 ax2 指定为 pbaspect 函数的第一个输入参数,设置下部图的图框纵横比。
using TyPlot
ax1 = subplot(2,1,1, projection="3d")
X,Y,Z = peaks(20)
mesh(X,Y,Z)
ax2 = subplot(2,1,2, projection="3d")
mesh(X,Y,Z)
pbaspect(ax2,[2 2 1])

# 输入参数
ratio - 图框纵横比三元素向量
图框纵横比,指定为由正值组成的三元素向量。例如,pbaspect([3 2 1]) 指定 x 轴长度、y 轴长度和 z 轴长度的比率为 3:2:1。因此,x 轴最长,z 轴最短。
指定比率可将 Axes 对象与 XLim、YLim 和 ZLim 属性交互作用,以控制 x 轴、y 轴和 z 轴的长度和缩放。
数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64
ax - 目标坐标区Axes 对象
目标坐标区,指定为 Axes 对象。如果您不指定坐标区,则 pbaspect 使用当前坐标区 (gca)。
# 输出参数
pb - 当前图框纵横比值三元素向量
当前图框纵横比,以三元素向量值的形式返回,表示 x 轴、y 轴和 z 轴长度的比率。
查询图框纵横比模式将返回 Axes 对象的图框纵横比。