이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

앱 디자이너에서 그래픽스 표시하기

앱 디자이너에서 그래픽스를 표시하려면 일반적으로 MATLAB® 명령줄에서 사용하는 그것과는 다른 작업 흐름이 필요합니다. 이 작업 흐름과 몇 가지 특수한 사례를 이해하고 나면 거의 모든 유형의 플롯을 표시하는 데 필요한 함수를 호출하는 방법을 알 수 있습니다.

그래픽스 함수 호출하기

MATLAB(및 MATLAB 툴박스)의 그래픽스 함수 대부분에는 대상 좌표축 또는 상위(부모) 객체를 지정하는 데 사용할 수 있는 인수가 있습니다. 이 인수는 대부분의 상황에서는 선택 사항이지만, 앱 디자이너에서 이런 그래픽스 함수를 호출하는 경우에는 이 인수를 반드시 지정해야 합니다. 그렇지 않으면 MATLAB은 gcf 또는 gca를 사용하여 작업에 사용할 대상 객체를 가져옵니다. 그러나 gcf는 앱 디자이너 Figure를 반환할 수 없고 gca는 앱 디자이너 Figure 내에서 어떠한 좌표축도 반환할 수 없습니다. 따라서, 인수를 생략하면 예기치 않은 결과가 생성될 수 있습니다.

다음 코드는 두 개의 선을 플로팅할 때 대상 좌표축을 지정하는 방법을 보여줍니다. plothold에 전달되는 첫 번째 인수는 app.UIAxes이며, 이는 앱 디자이너 좌표축의 디폴트 이름입니다.

plot(app.UIAxes,[1 2 3 4],'-r');
hold(app.UIAxes);
plot(app.UIAxes,[10 9 4 7],'--b');

일부 함수(예: imshowtriplot)는 이름-값 쌍 인수를 사용하여 대상 객체를 지정합니다. 예를 들어, 다음 코드는 앱 디자이너에서 imshow 함수를 호출하는 방법을 보여줍니다.

imshow('peppers.png','Parent',app.UIAxes);
대상 객체를 첫 번째 인수로 지정할지 아니면 이름-값 쌍 인수로 지정할지는 함수에 따라 다릅니다. 적합한 인수를 파악하려면 사용할 특정 함수에 대한 도움말 문서를 참조하십시오.

다른 유형의 좌표축을 사용하여 플롯 표시하기

앱 디자이너 좌표축(uiaxes 객체)을 사용하여 대부분의 2차원 플롯과 3차원 플롯을 생성할 수 있습니다. R2018b부터는 추가적으로 다음 표에 나열된 플롯을 생성할 수 있습니다. 이러한 플롯 중 대부분은 앱에서 다른 유형의 상위(부모) 객체 및 추가적인 코드를 필요로 합니다. 이러한 플롯은 모두 기본적으로 정규화된 단위를 사용합니다.

함수코딩 관련 세부 지침
polarplot
polarhistogram
polarscatter
compass

polaraxes 함수를 호출하여 극좌표 좌표축을 생성합니다. 상위(부모) 컨테이너를 첫 번째 입력 인수(예: app.UIFigure)로 지정합니다. 그런 다음 극좌표 좌표축을 첫 번째 인수로 지정하여 플로팅 함수를 호출합니다. 예를 들어, 다음과 같이 합니다.

theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta);
pax = polaraxes(app.UIFigure);
polarplot(pax,theta,rho)

subplot

다음 단계를 따르십시오.

  1. AutoResizeChildren 속성을 'off'로 설정합니다. 서브플롯은 자동 크기 조정 동작을 지원하지 않습니다. 앱 디자이너 구성요소 브라우저(Component Browser)인스펙터(Inspector) 탭이나 코드에서 이 속성을 설정할 수 있습니다.

  2. subplot을 호출할 때 'Parent' 이름-값 쌍 인수를 사용하여 상위(부모) 컨테이너를 지정합니다. 또한, 좌표축을 저장할 출력 인수를 지정합니다.

  3. 좌표축을 첫 번째 입력 인수로 지정하여 플로팅 함수를 호출합니다.

예를 들어, 다음과 같이 합니다.

app.UIFigure.AutoResizeChildren = 'off';
ax1 = subplot(1,2,1,'Parent',app.UIFigure);
ax2 = subplot(1,2,2,'Parent',app.UIFigure);
plot(ax1,[1 2 3 4])
plot(ax2,[10 9 4 7])

pareto
plotmatrix

다음 단계를 따르십시오.

  1. AutoResizeChildren 속성을 'off'로 설정합니다. 이러한 플롯은 자동 크기 조정 동작을 지원하지 않습니다. 앱 디자이너 구성요소 브라우저(Component Browser)인스펙터(Inspector) 탭이나 코드에서 이 속성을 설정할 수 있습니다.

  2. axes 함수를 호출하여 좌표축을 생성합니다. 상위(부모) 컨테이너를 첫 번째 입력 인수(예: app.UIFigure)로 지정합니다.

  3. 좌표축을 첫 번째 입력 인수로 지정하여 pareto 함수나 plotmatrix 함수를 호출합니다.

예를 들어, 다음과 같이 합니다.

app.UIFigure.AutoResizeChildren = 'off';
ax = axes(app.UIFigure);
pareto(ax,[10 20 40 40])

geobubble
heatmap
parallelplot
scatterhistogram
stackedplot
wordcloud

이러한 함수를 호출할 때 상위(부모) 컨테이너(예: app.UIFigure)를 지정합니다.

예를 들어, 다음과 같이 합니다.

h = heatmap(app.UIFigure,rand(10));

geoplot
geoscatter
geodensityplot

geoaxes 함수를 호출하여 지리적 좌표축을 생성합니다. 상위(부모) 컨테이너를 첫 번째 입력 인수(예: app.UIFigure)로 지정합니다. 그런 다음 좌표축을 첫 번째 인수로 지정하여 플로팅 함수를 호출합니다. 예를 들어, 다음과 같이 합니다.

latSeattle = 47 + 37/60;
lonSeattle = -(122 + 20/60);
gx = geoaxes(app.UIFigure);
geoplot(gx,latSeattle,lonSeattle)

지원되지 않는 기능

R2019a부터 일부 그래픽스 기능이 앱 디자이너에서 지원되지 않습니다. 아래 표에는 대부분의 앱 작성 워크플로와 관련된 기능이 나열되어 있습니다.

범주지원되지 않는 기능
애니메이션
주석
데이터 가져오기 및 저장

uifigure를 사용하여 프로그래밍 방식으로 만든 Figure는 save, load, savefigopenfig 함수를 지원합니다.

유틸리티
권장되지 않는 함수
그리드 레이아웃 관리자 또는 스크롤 가능한 컨테이너에서의 좌표축
  • 그리드 레이아웃 관리자와 스크롤 가능한 컨테이너는 axes, polaraxes, geoaxes, 또는 Figure의 하위(자식)일 수 있는 차트(예: heatmap, geobubble 또는 stackedplot)를 지원하지 않습니다.

  • uiaxes에는 이러한 제한 사항이 없습니다.

우회적 해결 방법:

  • 그리드 레이아웃 관리자 제한 사항에 제약을 받지 않으려면 좌표축 또는 차트를 패널에 배치하십시오. 그런 다음 패널을 그리드에 배치하십시오.

  • 스크롤 가능한 컨테이너 제한 사항에 제약을 받지 않으려면 좌표축 또는 차트를 Scrollable 속성이 'off'로 설정된 패널에 배치하십시오. 그런 다음 패널을 스크롤 가능한 컨테이너에 배치하십시오.

구성요소
속성
  • 일부 구성요소 속성은 앱 디자이너에서 지원되지 않습니다. 특정 구성요소별로 지원되는 속성 목록은 앱 디자이너에서 앱 디자인하기에서 해당 속성 페이지를 참조하십시오.

참고 항목

|

관련 항목