Main Content

그래프에 사용할 Figure 및 좌표축 준비하기

MATLAB 플로팅 함수의 동작

MATLAB® 플로팅 함수는 Figure와 좌표축이 없는 경우 새로 생성하거나 기존 Figure와 좌표축을 재사용합니다. 기존 좌표축을 재사용하는 경우 MATLAB은 다음을 수행합니다.

  • 좌표축에서 그래픽스 객체를 지웁니다.

  • 대부분의 axes 속성을 해당 디폴트 값으로 재설정합니다.

  • 새 데이터를 기준으로 새 좌표축 제한을 계산합니다.

플로팅 함수가 그래프를 생성할 때 함수는 다음을 수행할 수 있습니다.

  • 그래프에 사용할 Figure와 좌표축을 생성하고 특정 그래프에 필요한 속성을 설정할 수 있습니다(현재 Figure가 없을 경우 디폴트 동작임).

  • 기존 Figure와 좌표축을 재사용하고 필요한 경우 axes 속성을 해제하고 재설정할 수 있습니다(그래프가 있는 경우 디폴트 동작임).

  • 속성을 재설정하지 않고 새 데이터 객체를 기존 그래프에 추가할 수 있습니다(holdon인 경우).

NextPlot Figure와 axes 속성은 MATLAB 플로팅 함수가 동작하는 방식을 제어합니다.

NextPlot 속성이 동작을 제어하는 방법

MATLAB 플로팅 함수는 Figure와 좌표축의 NextPlot 속성값을 사용하여 새 그래프를 그리기 전에 Figure와 좌표축을 추가하거나, 지우거나 아니면 지운 후 재설정할지를 결정합니다. 로우 레벨 객체 생성 함수는 NextPlot 속성을 확인하지 않습니다. 그저 새 그래픽스 객체를 현재 Figure와 좌표축에 추가할 뿐입니다.

다음 표에는 NextPlot 속성으로 가능한 값이 정리되어 있습니다.

NextPlot

Figure

좌표축

new

새 Figure를 만들어 현재 Figure로 사용합니다.

좌표축에 대한 옵션이 아닙니다.

add

현재 Figure를 지우거나 재설정하지 않고 새 그래픽스 객체를 추가합니다. (디폴트 값)

현재 좌표축을 지우거나 재설정하지 않고 새 그래픽스 객체를 추가합니다.

replacechildren

핸들이 숨겨져 있지 않은 모든 axes 객체를 제거한 후 새 객체를 추가합니다. Figure 속성을 재설정하지 않습니다. clf와 동일합니다.

핸들이 숨겨져 있지 않은 모든 axes의 자식 객체를 제거한 후 새 그래픽스 객체를 추가합니다. axes 속성을 재설정하지 않습니다. cla와 동일합니다.

replace

새 객체를 추가하기 전에 모든 axes 객체를 제거하고 Figure 속성을 디폴트로 재설정합니다. clfreset과 동일합니다.

새 객체를 추가하기 전에 모든 자식 객체를 제거하고 axes 속성을 디폴트로 재설정합니다. clareset과 동일합니다. (디폴트 값)

플로팅 함수는 newplot 함수를 호출하여 적절한 좌표축에 대한 핸들을 가져옵니다.

디폴트 시나리오

Figure의 NextPlot 속성이 add이고 좌표축의 NextPlot 속성이 replace인 디폴트 상황을 가정해 보겠습니다. newplot을 호출하면 다음 작업을 수행합니다.

  1. 현재 Figure의 NextPlot 속성값(add)을 확인합니다.

  2. MATLAB이 Figure를 수정하지 않고 현재 Figure에 그릴 수 있는지 결정합니다. 현재 Figure가 없으면 newplot이 새로 생성하지만 NextPlot 속성을 다시 확인하지는 않습니다.

  3. 현재 좌표축의 NextPlot 속성값(replace)을 확인하고, 좌표축에서 모든 그래픽스 객체를 삭제하고, 모든 axes 속성(PositionUnits는 제외)을 디폴트로 재설정한 후 현재 좌표축의 핸들을 반환합니다. 현재 좌표축이 없으면 newplot이 새로 생성하지만 NextPlot 속성을 다시 확인하지는 않습니다.

  4. 좌표축에서 모든 그래픽스 객체를 삭제하고, 모든 axes 속성(PositionUnits는 제외)을 디폴트로 재설정한 후 현재 좌표축의 핸들을 반환합니다. 현재 좌표축이 없으면 newplot이 새로 생성하지만 NextPlot 속성을 다시 확인하지는 않습니다.

hold 함수와 NextPlot 속성

hold 함수를 사용하면 NextPlot 속성에 편리하게 액세스할 수 있습니다. 다른 객체를 제거하거나 속성을 재설정하지 않고 객체를 그래프에 추가하려면 hold on을 사용합니다.

  • hold on — Figure 및 좌표축의 NextPlot 속성을 add로 설정합니다. 선 그래프에는 ColorOrderLineStyleOrder 속성값이 순서대로 돌아가며 적용됩니다.

  • hold off — 좌표축의 NextPlot 속성을 replace로 설정합니다.

ishold를 사용하여 holdon이나 off인지를 결정합니다.

사용자 작성 플로팅 함수의 동작 제어하기

MATLAB은 NextPlot 속성의 설정을 준수하는 플로팅 함수 작성을 단순화하기 위해 newplot 함수를 제공합니다.

newplotNextPlot 속성의 값을 확인하고 이들 값에 따라 적절한 동작을 수행합니다. 객체 생성 함수를 호출하는 모든 함수의 시작 부분에 newplot을 추가하십시오.

함수가 newplot을 호출하는 경우, newplot은 먼저 Figure의 NextPlot 속성을 쿼리합니다. 그러면 newplot이 속성값에 따라 다음 표에 설명된 동작을 수행합니다.

Figure의 NextPlot 속성값newplot 함수

Figure가 없음

Figure를 생성하고 현재 Figure로 설정합니다.

add

Figure를 현재 Figure로 설정합니다.

new

새 Figure를 생성하고 현재 Figure로 설정합니다.

replacechildren

Figure의 자식(axes 객체 및 해당 후손)을 삭제하고 이 Figure를 현재 Figure로 설정합니다.

replace

Figure의 자식을 삭제하고, Figure의 속성을 디폴트로 재설정한 후 이 Figure를 현재 Figure로 설정합니다.

그러면 newplot이 현재 좌표축의 NextPlot 속성을 확인합니다. 그러면 newplot이 속성값에 따라 다음 표에 설명된 동작을 수행합니다.

좌표축의 NextPlot 속성값newplot 함수

현재 Figure에 좌표축이 없음

좌표축을 생성하고 현재 좌표축으로 설정합니다.

add

좌표축을 현재 좌표축으로 설정하고 해당 핸들을 반환합니다.

replacechildren

좌표축의 자식을 삭제하고 이 좌표축을 현재 좌표축으로 설정합니다.

replace

좌표축의 자식을 삭제하고, 좌표축의 속성을 디폴트로 재설정한 후 이 좌표축을 현재 좌표축으로 설정합니다.