This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Set or query y-axis limits


  • ylim auto
  • ylim manual
  • yl = ylim
  • m = ylim('mode')
  • ___ = ylim(ax,___)



ylim(limits) sets the y-axis limits for the current axes. Specify limits as a two-element vector of the form [ymin ymax], where ymax is greater than ymin.

ylim auto lets the axes choose the y-axis limits. The axes chooses limits that span the range of the plotted data. This command sets the YLimMode property for the axes to 'auto'.

ylim manual freezes the limits at the current values. Use this option if you want to retain the current limits when adding new data to the axes using the hold on command. This command sets the YLimMode property for the axes to 'manual'.

yl = ylim returns a two-element vector containing the current limits.

m = ylim('mode') returns the current value of the limits mode, which is either 'auto' or 'manual'. By default, the mode is automatic unless you specify limits or set the mode to manual.

___ = ylim(ax,___) uses the axes specified by ax instead of the current axes. The ax input argument can precede any of the input arguments in the previous syntaxes. Use single quotes around input arguments that are character vectors, for example, ylim(ax,'auto') and ylim(ax,'manual'). You can include any of the output arguments in the preceding syntaxes if the original syntax supports an output argument.


collapse all

Plot a line and set the y-axis limits to range from -2 to 2.

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

Create a figure with two subplots and plot the same data in each subplot. Set the y-axis limits for the bottom subplot.

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

ax2 = subplot(2,1,2);
ylim(ax2,[-10 10])

Use manual mode to maintain the current y-axis limits when you add more plots to the axes.

First, plot a line.

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

Set the y-axis limits mode to manual so that the limits to not change. Use hold on to add a second plot to the axes.

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

The y-axis limits do not update to incorporate the new plot.

Switch back to automatically updated limits by resetting the mode to automatic.

ylim auto

Create a scatter plot of random data. Return the values of the y-axis limits.

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

yl =  ylim
yl =

    -2     3

Input Arguments

collapse all

Minimum and maximum limits, specified as a two-element vector of the form [ymin ymax], where ymax is greater than ymin. You can specify the limits as numeric, datetime, or duration values. However, the type of values that you specify must match the type of values along the y-axis.

You can specify both limits, or specify one limit and let MATLAB® automatically calculate the other.

  • To automatically set the minimum limit to the minimum data value, specify the first element as -inf, for example, ylim([-inf 0]).

  • To automatically set the maximum limit to the maximum data value, specify the second element as inf, for example, ylim([0 inf]).

When you specify the limits, the YLim property for the axes object changes to the specified values and the YLimMode property changes to 'manual'. Specify the y-axis limits can cause other limits to change, unless their corresponding modes are manual.

Example: [0 1]

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

Axes object. If you do not specify an axes object, then ylim sets the limits for the current axes (gca).

Output Arguments

collapse all

Current limits, returned as a two-element vector of the form [ymin ymax].

Querying the limits returns the YLim property value for the corresponding axes.

Current limits mode, returned as one of these values:

  • 'auto' — The limits update to reflect changes in the data.

  • 'manual' — The limits do not update to reflect changes in the data.

Querying the y-axis limits mode returns YLimMode property value for the corresponding axes.

See Also

| | | | |

Introduced before R2006a

Was this topic helpful?