Clipping in Plots and Graphs
This example shows how MATLAB® uses clipping in plots and how to control clipping.
What Is Clipping?
Clipping occurs when part of an object extends outside the boundaries of the axes in a plot. In MATLAB®, the part of the object that is clipped does not appear on the screen or in printed output. By default, MATLAB clips most objects at the axis limits.
Turn Clipping Off
Clipping in 2-D Plots
Clipping occurs in 2-D plots. For example, MATLAB clips the sine wave in this 2-D plot.
x = 0:pi/20:2*pi; y = sin(x); plot(x,y) xlim([0,2*pi]) ylim([-0.9 0.9])
You can control the clipping of the sine wave by using the axes Clipping
property. Turn clipping "off"
to display the entire sine wave.
ax = gca;
ax.Clipping = "off";
Clipping in 3-D Plots
Clipping also occurs in 3-D plots. For example, MATLAB clips the surface in this 3-D plot.
figure surf(peaks) zlim([-4 4])
You can control the clipping behavior of the axes by using the axes Clipping
property. Turn clipping "off"
to display the entire surface.
ax = gca;
ax.Clipping = "off";
Control the Clipping Style
Use the ClippingStyle
property to control the way clipping works with respect to the axes. If you set ClippingStyle
to "3dbox"
, then MATLAB clips objects to the volume defined by the limits of the x-, y-, and z-axes. If you set ClippingStyle
to "rectangle"
, then MATLAB clips objects at an imaginary rectangle drawn around the outside of the x-, y-, and z-axes. These plots show the difference between the two clipping styles.
Control Text Clipping
Objects other than axes have the Clipping
property. MATLAB can also clip text objects at the axes plot box. For example, plot some data and add a text description. By default, the Clipping
property for text objects is set to "off"
, so if you zoom or pan, text can extend outside the axis limits.
figure
x = 1:10;
y = -10:10;
[X,Y] = meshgrid(x,y);
Z = X.^2-Y.^2;
surf(X,Y,Z);
ylim([-20.5 1.5])
t = text(1,7,60,"example");
If you set the text Clipping
property to "on"
, the full text disappears from view when the (x,y,z)
position of the text object, also known as the anchor point, is outside the axes plot box.
t.Clipping = "on";
If you want the text to clip at the axes plot box and show partial text, then also set the axes ClippingStyle
property to "rectangle"
.
ax = gca;
ax.ClippingStyle = "rectangle";
Clipping and Markers
Clipping does not affect markers drawn at each data point as long as the data point itself is inside the x- and y-axes limits of the plot. MATLAB displays the entire marker even if it extends slightly outside the boundaries of the axes.
p = plot(1:10,'*');
p.MarkerSize = 10;
axis([1 10 1 10])