Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

xlim

设置或查询 x 坐标轴范围

说明

特定范围

示例

xlim(limits) 设置当前坐标区或图的 x 坐标轴范围。将 limits 指定为 [xmin xmax] 形式的二元素向量,其中 xmax 大于 xmin

示例

xl = xlim 以二元素向量形式返回当前范围。

自动或手动范围选择

示例

xlim(limitmethod) 指定 MATLAB® 用于自动范围选择的限制方法。将限制方法指定为 'tickaligned''tight''padded'。MATLAB 将坐标区的 XLimitMethod 属性设置为您指定的值。独立可视化不支持限制方法。

您可以不带括号指定 limitmethod 参数。例如,xlim tight 启用紧凑的 x 轴范围。

示例

xlim(limitmode) 指定自动或手动范围选择。limitmode 可以具有下列值之一:

  • 'auto' - 启用自动范围选择。MATLAB 根据数据范围和坐标区的 XLimitMethod 属性值选择范围。如果您多次在坐标区中绘图,范围会更新以涵盖所有数据。

  • 'manual' - 将 x 轴范围冻结在当前值。

您可以不带括号指定 limitmode 参数。例如,xlim auto 启用自动范围选择。

m = xlim('mode') 返回当前 x 坐标轴范围模式:'auto''manual'。默认情况下,该模式为自动,除非您指定范围或将模式设置为手动。

目标坐标区或图

示例

___ = xlim(target,___) 使用 target 指定的坐标区或独立可视化,而不是使用当前坐标区。指定 target 作为上述任何语法的第一个输入参数。如果原始语法支持输出参数,则可以包含输出参数。模式输入应放在单引号内,例如 xlim(target,'auto')

示例

全部折叠

绘制一个线条,并将 x 坐标轴范围设置为从 0 至 5。

x = linspace(0,10);
y = sin(x);
plot(x,y)
xlim([0 5])

Figure contains an axes. The axes contains an object of type line.

创建曲面图并仅显示大于 0 的 x 值。将最小 x 轴范围指定为 0,并由 MATLAB 选择最大范围。

[X,Y,Z] = peaks;
surf(X,Y,Z)
xlim([0 inf])

Figure contains an axes. The axes contains an object of type surface.

x 轴为日期值创建一个针状图。将 x 坐标轴范围设置为从 2014 年 6 月 1 日到 2014 年 6 月 5 日。

t = datetime(2014,06,1) + caldays(0:10);
y = rand(11,1);
stem(t,y,'filled')

tstart = datetime(2014,06,1);
tend = datetime(2014,06,5);
xlim([tstart tend])

Figure contains an axes. The axes contains an object of type stem.

如果您要 x 轴自动调整以匹配 x 坐标范围,请使用 'tight' 限制方法。

创建一个线图。

plot([1 2 3 4 5 6.3],[0 0.3 0.1 0.6 0.4 1])

Figure contains an axes. The axes contains an object of type line.

将限制方法更改为 'tight'

xlim tight

Figure contains an axes. The axes contains an object of type line.

向坐标区添加另一个图。x 轴范围会进行调整以涵盖新数据的跨度。

hold on
plot([1 2 3 4 5 8.3],[0.1 0.2 0.3 0.4 0.5 0.83])
hold off

Figure contains an axes. The axes contains 2 objects of type line.

从 R2019b 开始,您可以使用 tiledlayoutnexttile 函数显示分块图。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1ax2。在每个坐标区中绘制数据。然后通过将 ax2 指定为 xlim 的第一个输入参数,设置底部图的 x 坐标轴范围。

tiledlayout(2,1)
x = linspace(0,5,1000);
y = sin(100*x)./exp(x);
ax1 = nexttile;
plot(ax1,x,y)

ax2 = nexttile;
plot(ax2,x,y)
xlim(ax2,[0 1])

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

当将更多绘图添加到坐标区时,使用手动模式可保持当前 x 坐标轴范围。

首先,绘制一个线条。

x = linspace(0,10);
y = sin(x);
plot(x,y);

Figure contains an axes. The axes contains an object of type line.

x 坐标轴范围模式设置为手动,以便范围不发生变化。使用 hold on 将第二个绘图添加到坐标区。

xlim manual
hold on
plot(2*x,2*y)
hold off

Figure contains an axes. The axes contains 2 objects of type line.

x 坐标轴范围不会更新以包含该新绘图。

通过将模式重置为自动来重新切换回自动更新的范围。

xlim auto

Figure contains an axes. The axes contains 2 objects of type line.

创建一个由随机数据组成的散点图。返回 x 坐标轴范围的值。

x = randn(50,1);
y = randn(50,1);
scatter(x,y)

Figure contains an axes. The axes contains an object of type scatter.

xl = xlim
xl = 1×2

    -3     4

输入参数

全部折叠

最小和最大范围,指定为 [xmin xmax] 形式的二元素向量,其中 xmax 大于 xmin。您可以将范围指定为数字、分类、日期时间或持续时间值。但是,您指定的值的类型必须匹配 x 轴的值的类型。

您可以指定这两个范围,也可以指定一个范围而让 MATLAB 自动计算另一个范围。对于自动计算的最小或最大范围,请分别使用 -infinf。MATLAB 使用 'tight' 范围方法计算对应的范围。

示例: xlim([0 1])

示例: xlim([-inf 1])

示例: xlim([0 inf])

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

范围选择方法,指定为下表中的值之一。

下表中的示例展示每种方法的大致外观。根据您的数据、坐标区的大小和您创建的绘图类型,结果可能会有所不同。

说明示例
'tickaligned'

通常,将坐标区框的边缘与最接近数据的刻度线对齐,但不排除任何数据。外观可能因绘制的数据类型和创建的图类型而异。

Plotted sine wave with 'tickaligned' limit method.

'tight'

将坐标轴范围设置为数据范围,使坐标区框紧密贴合数据。

Plotted sine wave with 'tight' limit method.

'padded'

使坐标区框贴合数据,每侧只留很窄的填充边距。边距的宽度大约是数据范围的 7%。

Plotted sine wave with 'padded' limit method.

注意

  • 当坐标区的 XLimMode 属性设置为 'manual' 时,限制方法不起作用。

  • 独立可视化(如 heatmapstackedplot)不支持指定限制方法。

范围模式,指定为下列值之一:

  • 'auto' - 启用自动范围选择,具体范围基于数据的总跨度和坐标区的 XLimitMethod 属性的值。如果您多次在坐标区中绘图,范围会更新以涵盖所有数据。如果更改了范围,然后又想将它们设置回默认值,您可以使用此选项。

  • 'manual' - 将范围冻结在当前值。当使用 hold on 命令向坐标区添加新数据时,如果要保留当前范围,请使用此选项。

当您指定此参数时,MATLAB 将坐标区的 XLimMode 属性设置为您指定的值。但是,无论何时通过调用 xlim(limits) 或通过设置坐标区上 XLim 属性的值来显式设置 x 轴范围时,XLimMode 属性都会更改为 'manual'

目标坐标区或图,指定为以下项之一:

  • 坐标区对象。

  • 具有 XLimits 属性的独立可视化,例如 heatmap 图或 stackedplot

  • 属于同一类的坐标区或独立可视化的数组。要确定类,请使用 class 函数。

如果不指定此参数,则 xlim 会设置 gca 命令返回的图形对象的范围。

输出参数

全部折叠

当前范围,返回为 [xmin xmax] 形式的一个二元素向量。

查询范围时将返回对应的 Axes 或图形对象的 XLimXLimits 属性值。

当前范围模式,返回为下列值之一:

  • 'auto' - 自动确定范围。

  • 'manual' - 使用手动指定的范围,这些范围不会更新以反映数据的变化。

查询 x 坐标轴范围模式时将返回对应 Axes 对象的 XLimMode 属性值。

算法

xlim 函数设置并查询与 x 坐标轴范围有关的多个坐标区属性。

  • XLim - 用于存储 x 坐标轴范围的属性。

  • XLimMode - 用于存储 x 坐标轴范围模式的属性。设置 x 坐标轴范围时,此属性更改为 'manual'

  • XLimitMethod - 控制当 XLimMode 属性设置为 'auto' 时如何计算 x 轴范围的属性。

在 R2006a 之前推出