MATLAB:指定坐标轴范围轴向位置

Posted 没事就要敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB:指定坐标轴范围轴向位置相关的知识,希望对你有一定的参考价值。

1 更改坐标轴范围

xlim:x轴范围,xlim([a b])
ylim:y轴范围,ylim([a b])
zlim:z轴范围,zlim([a b])

以二维为例

示例: 未指定坐标轴范围,默认显示

代码:

clc;
clear;

% 绘制
x = linspace(-10,12,200); 
y = sin(4*x)./exp(x);
plot(x,y)
title('未指定坐标范围')
xlabel('X/(m)')
ylabel('Y/(m)')

结果展示:

示例2: 指定坐标轴范围

代码:

clc;
clear;

% 绘制
x = linspace(-10,12,200); 
y = sin(4*x)./exp(x);

plot(x,y)
xlim([0 10])
ylim([-0.4 0.8])
title('指定坐标范围')
xlabel('X/(m)')
ylabel('Y/(m)')

结果展示:


若是三维图形,则以相同的方式指定 Z Z Z 轴的范围即可,比如

zlim([0 10])		% 将Z轴坐标范围设置为[0,10]

2 使用半自动坐标轴范围

示例: 将 x 轴范围最大值设为 0,y 轴范围最小值设为 -1,其他范围则由 MATLAB 选择。对于自动计算的最小值或最大值,分别使用 -infinf 来表示。

指定坐标范围前

代码:

clc;
clear;

[X,Y,Z] = peaks;
surf(X,Y,Z)
title('未指定坐标范围')
xlabel('X/(m)')
ylabel('Y/(m)')
zlabel('Z/(m)')

结果展示:

指定坐标范围后

代码:

clc;
clear;

[X,Y,Z] = peaks;
surf(X,Y,Z)
xlim([-inf 1]) 
ylim([-2 inf])

title('半自动指定坐标范围')
xlabel('X/(m)')
ylabel('Y/(m)')
zlabel('Z/(m)')

结果展示:

3 还原默认坐标范围

auto 关键字

xlim auto
ylim auto
zlim auto

示例: 先更改坐标范围,再还原坐标范围

代码:

clc;
clear;

[X,Y,Z] = peaks;
surf(X,Y,Z)
xlim([-inf 1]) 
ylim([-2 inf])

title('还原默认坐标范围')
xlabel('X/(m)')
ylabel('Y/(m)')
zlabel('Z/(m)')

% 还原坐标轴默认范围
xlim auto
ylim auto
zlim auto

结果展示:

4 反转坐标轴方向

XDirYDir 属性

ax.XDir = 'reverse';
ax.YDir = 'reverse';

示例: 通过设置 Axes 对象的 XDirYDir 属性,可控制 x 轴和 y 轴值递增的方向。这些属性可以设置为 'reverse''normal'(默认值)。使用 gca 命令可访问 Axes 对象。

代码:

clc;
clear;

x = linspace(-10,12,200); 
y = sin(4*x)./exp(x);

figure
plot(x,y)
xlim([0 10])
ylim([-0.4 0.8])
title('未反转轴向')
xlabel('X/(m)')
ylabel('Y/(m)')

figure
plot(x,y)
xlim([0 10])
ylim([-0.4 0.8])
title('反转 X 轴')
xlabel('X/(m)')
ylabel('Y/(m)')
ax1 = gca;
ax1.XDir = 'reverse';

figure
plot(x,y)
xlim([0 10])
ylim([-0.4 0.8])
title('反转 Y 轴')
xlabel('X/(m)')
ylabel('Y/(m)')
ax2 = gca;
ax2.YDir = 'reverse';

figure
plot(x,y)
xlim([0 10])
ylim([-0.4 0.8])
title('反转 X 轴和 Y 轴')
xlabel('X/(m)')
ylabel('Y/(m)')
ax3 = gca;
ax3.XDir = 'reverse';
ax.YDir = 'reverse';

结果展示:

5 改变坐标轴线位置

XAxisLocationYAxisLocation 属性,以下为默认属性,X轴在底部,Y轴在左侧

ax = gca;
ax.XAxisLocation = 'bottom';
ax.YAxisLocation = 'left';

示例: 默认情况下,x 轴和 y 轴沿坐标区的外边界显示。通过设置 Axes 对象的 XAxisLocationYAxisLocation 属性来更改轴线位置,以使轴线在原点 (0,0) 处交叉。将 XAxisLocation 设置为 'top'、'bottom' 或 'origin'。将 YAxisLocation 设置为 'left'、'right' 或 'origin'。这些属性 仅适用于二维视图 中的坐标区

代码:

clc;
clear;

x = linspace(-5,5);
y = sin(x);
figure
plot(x,y)
title('默认轴线位置')
xlabel('X/(m)')
ylabel('Y/(m)')
% ax0 = gca;
% ax0.XAxisLocation = 'bottom';
% ax0.YAxisLocation = 'left';

figure
plot(x,y)
title('轴线在原点交叉')
xlabel('X/(m)')
ylabel('Y/(m)')
ax1 = gca;
ax1.XAxisLocation = 'origin';
ax1.YAxisLocation = 'origin';

figure
plot(x,y)
title('X轴在顶部,Y轴在中间')
xlabel('X/(m)')
ylabel('Y/(m)')
ax2 = gca;
ax2.XAxisLocation = 'top';
ax2.YAxisLocation = 'origin';
box off         % 删除坐标区框轮廓

figure
plot(x,y)
title('X轴在中间,Y轴在右侧')
xlabel('X/(m)')
ylabel('Y/(m)')
ax3 = gca;
ax3.XAxisLocation = 'origin';
ax3.YAxisLocation = 'right';
box off         % 删除坐标区框轮廓

结果展示:


相关链接:

https://ww2.mathworks.cn/help/matlab/creating_plots/change-axis-limits-of-graph.html

以上是关于MATLAB:指定坐标轴范围轴向位置的主要内容,如果未能解决你的问题,请参考以下文章

在用Matlab画图时,能不能改变原点的位置

matlab中plot()画图时如何指定X Y轴的范围

如何调整plot的坐标轴的显示位置

MATLAB设置坐标轴范围

opengl翻转后为啥出现两个图像

Matlab数据可视化