matlab中axis的用法

时间:2024-02-29 16:41:07

来源:https://ww2.mathworks.cn/help/matlab/ref/axis.html?searchHighlight=axis&s_tid=doc_srchtitle

axis

设置坐标轴范围和纵横比

全页折叠

说明

示例

axis(limits) 指定当前坐标区的范围。以包含 4 个、6 个或 8 个元素的向量形式指定范围。

示例

axis style 使用预定义样式设置轴范围和尺度。例如,将样式指定为 equal 以便沿着每个坐标轴使用相等的数据单位长度。

示例

axis mode 设置 MATLAB® 是否自动选择范围。将模式指定为 manualauto 或半自动选项之一,例如 \'auto x\'

示例

axis ydirection,其中 ydirectionij,即将原点放在坐标区的左上角。y 值按从上到下的顺序逐渐增加。ydirection 的默认值为 xy,即将原点放在左下角。y 值按从下到上的顺序逐渐增加。

示例

axis visibility,其中 visibilityoff,即关闭坐标区背景的显示。而坐标区中的绘图仍会显示。visibility 的默认值为 on,即显示坐标区背景。

示例

lim = axis 返回当前坐标区的 x 轴和 y 坐标轴范围。对于三维坐标区,还会返回 z 坐标轴范围。对于极坐标区,它返回 theta 轴和 r 坐标轴范围。

[m,v,d] = axis(\'state\') 返回坐标轴范围选择、坐标区可见性和 y 轴方向的当前设置。在以后的版本中将会删除该语法。请改用坐标区的 XLimModeYLimModeZLimModeVisibleYDir 属性来获取这些值。

示例

___ = axis(ax,___) 使用 ax 指定的坐标区或极坐标区,而不是使用当前坐标区。指定 ax 作为上述任何语法的第一个输入参数。将字符向量类型的输入参数用单引号引起来,例如 axis(ax,\'equal\')

示例

全部折叠

设置坐标轴范围

绘制正弦函数。

x = linspace(0,2*pi);
y = sin(x);
plot(x,y,\'-o\')

更改坐标轴范围,使 x 轴的范围从 02πy 轴的范围从 -1.5 到 1.5。

axis([0 2*pi -1.5 1.5])

 
 

使用半自动坐标轴范围

创建一个绘图。设置 x 轴的范围和 y 轴的最小范围。对最大的 y 轴范围使用自动计算的值。

x = linspace(-10,10,200);
y = sin(4*x)./exp(.1*x);
plot(x,y)
axis([-10 10 0 inf])

 
 

设置多个坐标轴的坐标轴范围

创建带有两个子图的图窗。在每个子图上绘制正弦波。然后,将子图的坐标轴范围设置为相同值。

x1 = linspace(0,10,100);
y1 = sin(x1);
ax1 = subplot(2,1,1);
plot(ax1,x1,y1)

x2 = linspace(0,5,100);
y2 = sin(x2);
ax2 = subplot(2,1,2);
plot(ax2,x2,y2)

axis([ax1 ax2],[0 10 -1 1])

 
 

显示绘图而不显示坐标区背景

绘制曲面而不显示坐标区的线条和背景。

surf(peaks)
axis off

 
 

使用紧凑的坐标轴范围并返回值

绘制一个曲面。将坐标轴范围设置为等于数据范围,这样绘图可以扩展到坐标区边缘。

surf(peaks)
axis tight

返回当前坐标轴范围的值。

l = axis
l = 1×6

    1.0000   49.0000    1.0000   49.0000   -6.5466    8.0752

 
 

更改坐标系的方向

创建棋盘图并更改坐标系的方向。

首先,使用 summer 颜色图创建绘图。默认情况下,x 轴的值按从左到右的顺序逐渐增加,y 轴的值按从下到上的顺序逐渐增加。

C = eye(10);
pcolor(C)
colormap summer

反转坐标系,这样 y 的值按从上到下的顺序逐渐增加。

axis ij

 
 

添加新绘图时保留当前的坐标轴范围

绘制一个正弦波。

x = linspace(0,10);
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 个或 8 个元素的向量。

对于笛卡尔坐标区,以下列形式之一指定范围:

  • [xmin xmax ymin ymax] - 将 x 坐标轴范围设置为从 xminxmax。将 y 坐标轴范围设置为从 yminymax

  • [xmin xmax ymin ymax zmin zmax] - 还将 z 坐标轴范围设置为从 zminzmax

  • [xmin xmax ymin ymax zmin zmax cmin cmax] - 还设置颜色范围。 cmin 是对应于颜色图中的第一种颜色的数据值。cmax 是对应于颜色图中的最后一种颜色的数据值。

Axes 对象的 XLimYLimZLimCLim 属性存储范围值。

对于极坐标区,以下列形式指定范围:

  • [thetamin thetamax rmin rmax] - 将 theta 坐标轴范围设置为从 thetaminthetamax。将 r 坐标轴范围设置为从 rminrmax

PolarAxes 对象的 ThetaLimRLim 属性存储范围值。

如果只想自动确定部分坐标区范围,请对您希望坐标区自动选择的范围使用 inf-inf。例如,axis([-inf 10 0 inf]) 将由坐标区选择合适的最小 x 轴范围和最大 y 轴范围。它对最大 x 轴范围和最小 y 轴范围使用指定值。

注意

如果 x 轴、y 轴或 z 轴显示分类、日期时间或持续时间值,则改用 xlimylimzlim 函数来设置范围。

示例: axis([0 1 0 1])

示例: axis([0 1 0 1 0 1])

示例: axis([0 inf 0 inf])

mode - 用来确定坐标轴范围的手动、自动或半自动选择
manual | auto | \'auto x\' | \'auto y\' | \'auto z\' | \'auto xy\' | \'auto xz\' | \'auto yz\'

用来确定坐标轴范围的手动、自动或半自动选择,指定为该表中的以下值之一。

说明更改的坐标区属性
manual 将所有坐标轴范围冻结在它们的当前值。 XLimModeYLimModeZLimMode 设置为 \'manual\'。如果使用的是极坐标区,则此选项会将 ThetaLimModeRLimMode 设置为 \'manual\'
auto 自动选择所有坐标轴范围。 XLimModeYLimModeZLimMode 设置为 \'auto\'。如果使用的是极坐标区,则此选项会将 ThetaLimModeRLimMode 设置为 \'auto\'
\'auto x\' 自动选择 x 坐标轴范围。 XLimMode 设置为 \'auto\'
\'auto y\' 自动选择 y 坐标轴范围。 YLimMode 设置为 \'auto\'
\'auto z\' 自动选择 z 坐标轴范围。 ZLimMode 设置为 \'auto\'
\'auto xy\' 自动选择 x 轴和 y 坐标轴范围。 XLimModeYLimMode 设置为 \'auto\'
\'auto xz\' 自动选择 x 轴和 z 坐标轴范围。 XLimModeZLimMode 设置为 \'auto\'
\'auto yz\' 自动选择 y 轴和 z 坐标轴范围。 YLimModeZLimMode 设置为 \'auto\'

 

注意

这些选项不能用于极坐标区。

style - 坐标轴范围和尺度
tight | fill | equal | image | square | vis3d | normal

坐标轴范围和尺度,指定为以下值之一。

说明更改的坐标区属性
tight 将坐标轴范围设置为等同于数据范围,使轴框紧密围绕数据。 XLimModeYLimModeZLimMode 更改为 \'auto\'。如果使用的是极坐标区,则 ThetaLimModeRLimMode 将改变。坐标区范围自动更新,以便包含添加到坐标区中的新数据。为了避免在使用 hold on 时范围发生更改,请使用 axis tight manual
equal 沿每个坐标轴使用相同的数据单位长度。 DataAspectRatio 设置为 [1 1 1],将 PlotBoxAspectRatio 设置为 [3 4 4],并将相关的模式属性设置为手动。禁用“伸展填充”行为。
image 沿每个坐标区使用相同的数据单位长度,并使坐标区框紧密围绕数据。 DataAspectRatio 设置为 [1 1 1],并将相关的模式属性设置为手动。禁用“伸展填充”行为。
square 使用相同长度的坐标轴线。相应调整数据单位之间的增量。 PlotBoxAspectRatio 设置为 [1 1 1],并将相关的模式属性设置为手动。禁用“伸展填充”行为。
fill 启用“伸展填充”行为(默认值)。每个轴线的长度恰好围成由坐标区的 Position 属性所定义的位置矩形。 将图框纵横比模式和数据纵横比模式的属性设置为自动。
vis3d 冻结纵横比属性。 将图框纵横比模式和数据纵横比模式的属性设置为手动。
normal 还原默认行为。 将图框纵横比模式和数据纵横比模式的属性设置为自动。

 

有关图框纵横比和数据纵横比的详细信息,请参阅 PlotBoxAspectRatioDataAspectRatio 属性。

注意

这些选项不能用于极坐标区,除非使用 axis tightaxis normal 命令。

ydirection - y 轴方向
xy (默认) | ij

y 轴方向,指定为下列值之一:

  • xy - 默认方向。对于二维视图中的坐标区,y 轴是垂直的,值从下到上逐渐增加。

  • ij - 反转方向。对于二维视图中的坐标区,y 轴是垂直的,值从上到下逐渐增加。

 

注意

这些选项不能用于极坐标区。

visibility - 坐标区线条和背景的可见性
on (默认) | off

坐标区线条和背景的可见性,指定为 onoff。指定可见性可将 Axes 对象或 PolarAxes 对象的 Visible 属性设置为指定的值。

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 对象的 XLimYLimZLim 属性存储范围值。

  • 对于极坐标区,lim 的格式为 [thetamin thetamax rmin rmax]PolarAxes 对象的 ThetaLimRLim 属性存储范围值。

 

提示

  • 您可以将多个输入参数结合使用,例如 axis image ij。选项从左到右进行计算。后面的选项会覆盖前面的选项设置的属性。

  • 如果坐标区不存在,则 axis 函数会创建坐标区。

  • 使用 hold on 避免绘图函数覆盖预设的坐标轴范围。

在 R2006a 之前推出