# axis
设置坐标轴范围和纵横比
函数库: TyPlot
# 语法
axis(limits)
axis(style)
lim = axis()
___ = axis(ax,___)
# 说明
axis(limits) 指定当前坐标区的范围。以包含 4 个、6 个元素的向量形式指定范围。示例
axis(style) 使用预定义样式设置轴范围和尺度。例如,将样式指定为 equal 以便沿着每个坐标轴使用相等的数据单位长度。示例
lim=axis() 返回当前坐标区的 x 轴和 y 坐标轴范围。对于三维坐标区,还会返回 z 坐标轴范围。对于极坐标区,它返回 theta 轴和 r 坐标轴范围。示例
___ = axis(ax,___) 使用 ax 指定的坐标区或极坐标区,而不是使用当前坐标区。指定 ax 作为上述任何语法的第一个输入参数。将字符向量类型的输入参数用双引号引起来,例如 axis(ax,"equal")。示例
# 示例
设置坐标轴范围
绘制正弦函数。
using TyPlot
x = LinRange(0, 2 * pi, 100);
y = sin.(x);
plot(x, y, "-o")
更改坐标轴范围,使 x 轴的范围从 0 到 2π,y 轴的范围从 -1.5 到 1.5。
axis([0 2*pi -1.5 1.5])

使用半自动坐标轴范围
创建一个绘图。设置 x 轴的范围和 y 轴的最小范围。对最大的 y 轴范围使用自动计算的值。
using TyPlot
x = LinRange(-10, 10, 200);
y = sin.(4 * x) ./ exp.(0.1 * x);
plot(x, y)
yl = ylim()
axis([-10 10 0 yl[2]])
println(yl)

设置多个坐标轴的坐标轴范围
调用 subplot 函数以创建一个 2×1 分块图布局和一个坐标区对象,并将该对象返回为 ax1。通过将 ax1 传递给 plot 函数来创建顶部绘图。重复该过程以创建底部绘图。在每个坐标区中绘制数据。然后将两个坐标区的轴范围设置为相同的值。
using TyPlot
ax1 = subplot(2, 1, 1)
x1 = LinRange(0, 10, 100);
y1 = sin.(x1);
plot(ax1, x1, y1)
x2 = LinRange(0, 5, 100);
y2 = sin.(x2);
ax2 = subplot(2, 1, 2)
plot(ax2, x2, y2)
axis([ax1 ax2],[0 10 -1 1])

显示绘图而不显示坐标区背景
绘制曲面而不显示坐标区的线条和背景。
using TyPlot
X,Y,Z = peaks()
surf(X,Y,Z)
axis("off")

使用紧凑的坐标轴范围并返回值
绘制一个曲面。将坐标轴范围设置为等于数据范围,这样绘图可以扩展到坐标区边缘。
using TyPlot
X,Y,Z = peaks()
surf(X,Y,Z)
axis("tight")
l = axis()
(-3.3, 3.3, -3.3, 3.3, -7.277735427794412, 8.806264448633215)
更改坐标系的方向
创建棋盘图并更改坐标系的方向。
首先,使用 summer 颜色图创建绘图。默认情况下,x 轴的值按从左到右的顺序逐渐增加,y 轴的值按从下到上的顺序逐渐增加。
using TyPlot
using TyBase
C = eye(10);
pc = pcolor(C);
colormap(pc, "summer")
反转坐标系,这样 y 的值按从上到下的顺序逐渐增加。
axis("ij")

添加新绘图时保留当前的坐标轴范围
绘制一个正弦波。
using TyPlot
x = LinRange(0, 10, 50);
y = sin.(x);
plot(x, y)
使用 hold("on") 将另一正弦波添加到坐标区中。通过将范围模式设置为手动来保留当前的坐标轴范围。
y2 = 2 * sin.(x);
hold("on")
axis("manual")
plot(x, y2)
hold("off")
如果您希望由这些坐标区自动选择合适的范围,请将范围模式设置回自动。
axis("auto")

# 输入参数
limits - 坐标轴范围四元素向量 | 六元素向量
坐标轴范围,指定为包含 4 个、6 个元素的向量。
对于笛卡尔坐标区,以下列形式之一指定范围:
- [xmin xmax ymin ymax] - 将 x 坐标轴范围设置为从 xmin 到 xmax。将 y 坐标轴范围设置为从 ymin 到 ymax;
- [xmin xmax ymin ymax zmin zmax] - 还将 z 坐标轴范围设置为从 zmin 到 zmax。
Axes 对象的 XLim、YLim、ZLim 属性存储范围值。
示例: axis([0 1 0 1])
示例: axis([0 1 0 1 0 1])
style - str"on" | "off" | "equal" | "tight" | "auto" | "manual"
style 是字符串,可能的值为:
| 值 | 说明 |
|---|---|
| "on" | 打开轴线和标签。 |
| "off" | 关闭轴线和标签。 |
| "equal" | 通过更改轴限制设置相等的缩放比例(即,使圆成为圆形)。在这种情况下,可能不会遵守明确的数据限制。 |
| "tight" | 设置大到足以显示所有数据的限制,然后禁用进一步的自动缩放。 |
| "auto" | 自动缩放(用数据填充绘图框)。 |
| "manual" | 将所有坐标轴范围冻结在它们的当前值。 |
| "ij" | 将y坐标轴反转,值从上到下逐渐增加。 |
| "square" | 更改图形比例,显示为正方形。 |
注意
这些选项不能用于极坐标区。
ax - 目标坐标区一个或多个坐标区
目标坐标区,指定为一个或多个坐标区。您可以指定 Axes 对象或 PolarAxes 对象。如果不指定坐标区,则由 axis 为当前坐标区 (gca) 设置范围。
指定坐标区时,需要将字符向量类型的其他输入参数用双引号引起来。
示例: axis(ax,"tight")
示例: axis(ax,limits)
示例: axis(ax,"manual")
# 输出参数
lim - 当前范围值四元素向量 | 六元素向量
当前范围值,以四元素或六元素向量形式返回。
对于二维视图中的笛卡尔坐标区,lim 的格式为 [xmin xmax ymin ymax]。对于三维视图中的坐标区,lim 的格式为 [xmin xmax ymin ymax zmin zmax]。Axes 对象的 XLim、YLim 和 ZLim 属性存储范围值。
# 另请参阅
# 函数
grid | title | xlim | ylim | zlim