Main Content

플롯과 그래프의 클리핑(Clipping)

이 예제에서는 MATLAB®이 플롯에서 클리핑을 사용하는 방법과 클리핑을 제어하는 방법을 보여줍니다.

클리핑이란?

클리핑은 객체의 일부가 플롯의 좌표축 경계 바깥으로 벗어나는 경우 발생합니다. MATLAB®에서 잘린 객체의 일부는 화면이나 인쇄된 출력물에 나타나지 않습니다. 기본적으로 MATLAB은 축 제한에서 대부분의 객체를 자릅니다.

클리핑 해제하기

2차원 플롯의 클리핑

클리핑은 2차원 플롯에서 발생합니다. 예를 들어, 이 2차원 플롯에서 MATLAB은 사인파를 자릅니다.

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

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

좌표축의 Clipping 속성을 사용하여 사인파의 클리핑을 제어할 수 있습니다. 전체 사인파를 표시하려면 클리핑을 "off"로 설정합니다.

ax = gca;
ax.Clipping = "off";

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

3차원 플롯의 클리핑

클리핑은 3차원 플롯에서도 발생합니다. 예를 들어, 이 3차원 플롯에서 MATLAB은 곡면을 자릅니다.

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

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

좌표축의 Clipping 속성을 사용하여 좌표축의 클리핑 동작을 제어할 수 있습니다. 전체 곡면을 표시하려면 클리핑을 "off"로 설정합니다.

ax = gca;
ax.Clipping = "off";

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

클리핑 스타일 제어

ClippingStyle 속성을 사용하여 좌표축을 기준으로 클리핑이 작동하는 방식을 제어합니다. ClippingStyle"3dbox"로 설정할 경우 MATLAB은 x축, y축, z축의 제한으로 정의된 볼륨에 맞게 객체를 자릅니다. ClippingStyle"rectangle"로 설정할 경우 MATLAB은 x축, y축, z축의 바깥쪽 둘레에 그려진 가상의 사각형에 맞게 객체를 자릅니다. 다음 플롯은 두 가지 클리핑 스타일 간의 차이를 보여줍니다.Two side-by-side surface plots. The plot with the ClippingStyle property set to "3dbox" shows the surface clipped at the axis limits. The plot with the ClippingStyle property set to "rectangle" shows the surface clipped beyond the axis limits.

텍스트 클리핑 제어하기

좌표축 이외의 객체는 Clipping 속성을 갖습니다. MATLAB은 좌표축 플롯 상자에서 text 객체를 자를 수도 있습니다. 예를 들어, 일부 데이터를 플로팅하고 텍스트 설명을 추가해 보겠습니다. 기본적으로, text 객체에 대한 Clipping 속성은 "off"로 설정되므로, 확대/축소하거나 패닝하면 텍스트가 축 제한의 바깥으로 연장될 수 있습니다.

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");

Figure contains an axes object. The axes object contains 2 objects of type surface, text.

텍스트의 Clipping 속성을 "on"으로 설정할 경우 앵커 점이라고도 하는 text 객체의 (x,y,z) 위치가 좌표축 플롯 상자 바깥쪽에 있으면 전체 텍스트가 보기에서 사라집니다.

t.Clipping = "on";

Figure contains an axes object. The axes object contains 2 objects of type surface, text.

좌표축 플롯 상자에서 텍스트를 자르고 부분 텍스트를 표시하려면 좌표축의 ClippingStyle 속성도 "rectangle"로 설정합니다.

ax = gca;
ax.ClippingStyle = "rectangle";

Figure contains an axes object. The axes object contains 2 objects of type surface, text.

클리핑과 마커

클리핑은 데이터 점 자체가 플롯의 x축 제한과 y축 제한 안쪽에 있는 한, 각 데이터 점에 그려지는 마커에 영향을 주지 않습니다. 마커가 좌표축 경계 바깥으로 약간 벗어나는 경우에도 MATLAB은 전체 마커를 표시합니다.

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

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

참고 항목

함수

속성

관련 항목