Усечение на графиках и графиках

В этом примере показано, как MATLAB ® использует усечение на графиках и как управлять усечением.

Что такое клиппинг?

Усечение происходит, когда часть графика происходит вне границ осей. В MATLAB ® отсекаемая часть графика не отображается на экране или в распечатанном выходе. Пределы по осям графика определяют контуры.

Выключить усечение

По умолчанию MATLAB клипсирует графики, которые выходят за пределы пределов осей.

figure
surf(peaks)
zlim([-4 4])

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

Используйте оси Clipping свойство для управления усечением.

ax = gca;               % get the current axis
ax.Clipping = 'off';    % turn clipping off

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

Управление стилем усечения

Используйте ClippingStyle свойство для контроля того, как работает усечение. Если на ClippingStyle установлено в '3dbox', затем MATLAB обрезает графики до объема, заданного пределами осей x, y и z. Если на ClippingStyle установлено в 'rectangle', затем MATLAB обрезает графики до воображаемого прямоугольника, нарисованного вокруг внешней оси x, y и z. На графиках ниже показано различие между двумя стилями усечения.

Обрезка на 2D графиках

Усечение также используется на 2D графиках. Для примера MATLAB клипирует синусоиду на графике ниже.

x = -pi:pi/20:pi;
y = sin(-pi:pi/20:pi);
plot(x,y)
ylim([-0.9 0.9])

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

Если усечение отключено, MATLAB отображает всю синусоиду.

ax = gca;
ax.Clipping = 'off';

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

Усечение и маркеры

Усечение не влияет на маркеры, нарисованные в каждой точке данных, пока сама точка данных находится внутри пределов по осям X и Y графика. MATLAB отображает весь маркер, даже если он немного выходит за контуры осей.

p = plot(1:10,'*');
p.MarkerSize = 10;
axis([1 10 1 10])

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