Main Content

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

ylim

设置或查询 y 坐标轴范围

说明

指定范围

示例

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

示例

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

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

示例

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

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

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

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

查询范围

示例

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

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

limmode = 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 object. The axes object 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 object. The axes object 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 object. The axes object contains an object of type bar.

创建一个线图。

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

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

将范围方法更改为 'tight'

ylim tight

Figure contains an axes object. The axes object 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 objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

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

首先,绘制一个线条。

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

Figure contains an axes object. The axes object 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 object. The axes object contains 2 objects of type line.

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

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

ylim auto

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

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

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

Figure contains an axes object. The axes object 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 属性值。

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

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

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

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

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

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

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

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

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

算法

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

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

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

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

版本历史记录

在 R2006a 之前推出

全部展开