Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

xlim

设置或查询 x 坐标轴范围

说明

指定范围

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

示例

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

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

示例

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

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

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

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

示例

查询范围

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

示例

limmethod = xlim("method") 返回当前 x 坐标轴范围方法,可以是 'tickaligned''tight''padded'

limmode = 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])

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

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

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])

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

创建一个线图。

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

将范围方法更改为 'tight'

xlim tight

向坐标区添加另一个图。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

从 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])

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

首先,绘制一个线条。

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

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

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

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

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

xlim auto

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

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

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 属性值。

当前范围方法,以下列值之一形式返回:

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

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

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

查询 x 坐标轴范围方法时将返回对应 Axes 对象的 XLimitMethod 属性值。

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

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

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

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

算法

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

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

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

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

版本历史记录

在 R2006a 之前推出

全部展开