在 MATLAB 中,axis 函数是一个用于控制坐标轴范围、比例、方向与可视性的常用图形函数。它常与 plotsurfimshowimagesc 等绘图函数联合使用,能大幅提升图像展示的清晰度与控制力。


📚 一、基本语法

axis([xmin xmax ymin ymax])           % 2D 图设置 x 和 y 范围
axis([xmin xmax ymin ymax zmin zmax]) % 3D 图设置 x、y、z 范围
axis auto                              % 自动适应坐标轴范围
axis manual                            % 手动锁定当前坐标轴范围
axis tight                             % 坐标轴紧贴数据边界
axis equal                             % 设置坐标轴单位长度相等
axis square                            % 坐标区域为正方形
axis off                               % 关闭坐标轴显示
axis on                                % 打开坐标轴显示

🧪 二、常见用法示例

1️⃣ 设置固定坐标轴范围

plot(x, y);
axis([0 10 -1 1]);  % x从0到10,y从-1到1

2️⃣ 自动范围(默认)

plot(x, y);
axis auto;          % MATLAB 自动选择合适范围

3️⃣ 锁定当前范围

plot(x, y);
axis manual;        % 即使图形更新,也不改变坐标轴范围

4️⃣ 坐标轴单位长度相等(常用于几何图)

plot(x, y);
axis equal;         % 每单位长度 x == y,真实反映比例

5️⃣ 坐标区域为正方形

plot(x, y);
axis square;        % 坐标区域为正方形,但不保证单位长度相等

6️⃣ 紧贴数据边缘(比 auto 更贴合)

plot(x, y);
axis tight;

7️⃣ 关闭/打开坐标轴显示(例如用于图像)

imshow(image);
axis off;   % 隐藏坐标轴刻度、边框

axis on;    % 恢复坐标轴显示

🎨 三、应用场景分类总结

应用场景推荐命令说明
精确控制坐标范围axis([xmin xmax ymin ymax])用于固定观察区域
保持绘图比例一致axis equal适合绘制圆、几何体、地图
图像显示去除坐标轴axis off适合图像处理与结果展示
自动缩放范围axis auto默认行为,适合快速绘图
贴合边界显示数据axis tight坐标轴紧贴数据边界,节省空间
手动锁定坐标轴axis manual保持当前坐标范围不被自动修改

🧠 四、常见注意事项

  • axis 只影响当前坐标轴(gca)。
  • 若存在多个子图(subplot),需使用 axes 或 subplot 切换焦点。
  • 在绘制 surf 或 mesh 等 3D 图形时,可加入 z 范围 [xmin xmax ymin ymax zmin zmax]

✅ 示例:结合 axis 的完整绘图代码

x = linspace(0, 2*pi, 100);
y = sin(x);
plot(x, y, 'r');
title('正弦波');
xlabel('x'); ylabel('sin(x)');
axis([0 2*pi -1.5 1.5]);
axis equal;

🔗 参考资料