Main Content

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

ylim

设置或查询 y 坐标轴范围

说明

特定范围

示例

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

示例

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

自动或手动范围选择

示例

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

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

示例

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

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

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

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

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

目标坐标区或图

示例

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

示例

全部折叠

绘制一个线条,并将 y 坐标轴范围设置为从 -2 至 2。

x = linspace(0,10);
y = sin(x);
plot(x,y)
ylim([-2 2])

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

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

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

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

以 y 轴为日期值创建一个水平条形图。将 y 坐标轴范围设置为从 2014 年 6 月 1 日到 2014 年 6 月 10 日。

t = datetime(2014,06,1) + caldays(0:20);
y = rand(21,1);
barh(t,y)

tstart = datetime(2014,06,1);
tend = datetime(2014,06,10);
ylim([tstart tend])

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

创建一个线图。

x = 1:5; 
y = [-2.7 2 -1 4.2 0];
plot(x,y)

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

将限制方法更改为 'tight'

ylim tight

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

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

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

ax2 = nexttile;
plot(ax2,x,y)
ylim(ax2,[-10 10])

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

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

首先,绘制一个线条。

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

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

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

ylim manual
hold on
y2 = 2*sin(x);
plot(x,y2)
hold off

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

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

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

ylim auto

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

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

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

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

yl =  ylim
yl = 1×2

    -2     3

输入参数

全部折叠

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

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

示例: ylim([0 1])

示例: ylim([-inf 1])

示例: ylim([0 inf])

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

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

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

说明示例
'tickaligned'

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

Line plot with 'tickaligned' limit method.

'tight'

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

Line plot with 'tight' limit method.

'padded'

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

Line plot with 'padded' limit method.

注意

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

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

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

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

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

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

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

  • Axes 对象。

  • 具有 YLimits 属性的独立可视化,如 heatmap 图。

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

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

输出参数

全部折叠

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

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

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

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

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

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

算法

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

  • YLim - 用于存储 y 坐标轴范围的属性。

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

  • YLimitMethod - 控制当 YLimMode 属性设置为 'auto' 时如何计算 y 轴范围的属性。

在 R2006a 之前推出