Main Content

여러 개의 스케일과 좌표축 제한을 사용하여 데이터 표시하기

여러 개의 스케일과 축 제한을 사용하여 데이터를 시각화하기 위해 다양한 기법을 사용할 수 있습니다. 예를 들어, yyaxis 함수를 사용하여 두 개의 y축이 있는 플롯을 만들 수 있습니다. 여러 개의 x축, y축, 컬러바가 있는 플롯을 만들거나 구간으로 분할된 불연속 축이 있는 플롯을 만들려면 tiledlayout 함수를 사용하십시오.

두 개의 y축이 있는 데이터 표시하기

yyaxis 함수를 사용하여 두 개의 y축이 있는 플롯을 생성합니다. 예를 들어, 두 개의 y축을 사용하여 두 개의 선을 다른 스케일로 플로팅할 수 있습니다.

axes 객체를 만들고 yyaxis left를 호출하여 왼쪽 y축을 활성화합니다. 그런 다음, 사인파를 플로팅합니다.

figure
yyaxis left
x = linspace(0,10);
y = sin(3*x);
plot(x,y)

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

yyaxis right를 호출하여 오른쪽 y축을 활성화합니다. 그런 다음, 증폭된 사인파를 플로팅합니다.

yyaxis right
y2 = sin(3*x).*exp(0.5*x);
plot(x,y2)

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

여러 개의 x축과 y축이 있는 데이터 표시하기

R2019b 이상

별도의 x축과 y축이 있는 두 개의 데이터 세트를 플로팅하려면 타일 형식 차트 레이아웃에 두 개의 axes 객체를 별도로 만듭니다. axes 객체 중 하나의 내부에서 x축을 플롯 상자의 위쪽으로 이동하고 y축을 플롯 상자의 오른쪽으로 이동합니다.

예를 들어, 서로 다른 x축 제한과 y축 제한을 가진 두 개의 플롯을 만들 수 있습니다.

먼저 x 좌표와 y 좌표로 구성된 두 개의 집합을 만듭니다.

x1 = 0:0.1:40;
y1 = 4.*cos(x1)./(x1+2);
x2 = 1:0.2:20;
y2 = x2.^2./x2.^3;

타일 형식 차트 레이아웃과 axes 객체를 만듭니다. 그런 다음, 좌표축에 플로팅합니다.

  • 1×1 타일 형식 차트 레이아웃 t를 만듭니다.

  • axes 함수를 호출하고 부모 객체로 t를 지정하여 axes 객체 ax1을 만듭니다.

  • x1y1을 빨간색 선으로 플로팅하고 ax1을 대상 좌표축으로 지정합니다.

  • 플로팅된 선과 일치하도록 x축과 y축의 색을 변경합니다. 플로팅한 후에 좌표축의 속성을 설정하면 설정이 유지됩니다.

t = tiledlayout(1,1);
ax1 = axes(t);
plot(ax1,x1,y1,'-r')
ax1.XColor = 'r';
ax1.YColor = 'r';

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

두 번째 axes 객체를 만들고 두 번째 데이터 세트를 빨간색이 아닌 검은색으로 플로팅합니다. 그런 다음, 두 번째 axes 객체의 속성을 설정하여 x축과 y축을 이동하고 플롯이 서로 가리지 않도록 합니다.

  • axes 함수를 호출하고 부모 객체로 t를 지정하여 axes 객체 ax2를 만듭니다.

  • x2y2를 검은색 선으로 플로팅하고 ax2를 대상 좌표축으로 지정합니다.

  • x축을 위쪽으로 이동하고 y축을 오른쪽으로 이동합니다.

  • 기본 플롯이 표시되도록 axes 객체의 색을 'none'으로 설정합니다.

  • 상자 가장자리가 x축과 y축을 가리지 않도록 플롯 상자를 끕니다.

ax2 = axes(t);
plot(ax2,x2,y2,'-k')
ax2.XAxisLocation = 'top';
ax2.YAxisLocation = 'right';
ax2.Color = 'none';
ax1.Box = 'off';
ax2.Box = 'off';

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

불연속 x축에 데이터 플로팅하기

R2019b 이상

타일 형식 차트 레이아웃을 사용하여 하나의 축을 따라 구간으로 분할된 모양의 플롯을 표시할 수 있습니다. 예를 들어, x축의 한 부분을 제외하여 다른 관심 영역에 집중하려고 할 수 있습니다.

좌표 벡터 xy를 만듭니다.

x = 0:0.1:60;
y = 4.*cos(x)./(x+2);

두 개의 타일을 포함하는 타일 형식 차트 레이아웃을 만들고 두 개의 타일 모두에 걸쳐 axes 객체를 배치합니다. 최종적으로 이 axes 객체는 다른 두 개의 axes 객체 뒤의 배경에 표시됩니다. x축 부분은 하나의 긴 x축 모양으로 보이도록 표시됩니다.

  • 1×2 타일 형식 차트 레이아웃 t를 만들고 타일 간격을 조밀하게 지정합니다. 타일 간격을 설정하면 x축 구간 사이의 간격 크기를 제어할 수 있습니다.

  • axes 함수를 호출하고 부모 객체로 t를 지정하여 배경 좌표축 bgAx를 만듭니다. 모든 눈금을 제거하고 플롯 상자를 끄도록 이름-값 인수를 지정합니다.

  • bgAxLayout.TileSpan 속성을 [1 2]로 설정하여 배경 좌표축을 두 타일에 걸쳐 배치합니다.

figure
t = tiledlayout(1,2,'TileSpacing','compact');
bgAx = axes(t,'XTick',[],'YTick',[],'Box','off');
bgAx.Layout.TileSpan = [1 2];

Figure contains an axes object. The axes object is empty.

첫 번째 타일의 bgAx 앞에 axes 객체를 만듭니다. xy를 플로팅하고 x축 제한을 첫 번째 구간으로 설정합니다.

  • axes 함수를 호출하고 부모 객체로 t를 지정하여 ax1을 만듭니다. 기본적으로 좌표축은 첫 번째 타일에 배치됩니다.

  • ax1에 x와 y를 플로팅합니다.

  • xline 함수를 호출하여 첫 번째 구간의 상한에 점선으로 된 세로선을 표시합니다.

  • x축 제한을 첫 번째 구간인 [0 15]로 설정합니다.

  • 첫 번째 구간을 식별하도록 축 레이블을 추가합니다.

ax1 = axes(t);
plot(ax1,x,y)
xline(ax1,15,':');
ax1.Box = 'off';
xlim(ax1,[0 15])
xlabel(ax1, 'First Interval')

Figure contains 2 axes objects. Axes object 1 is empty. Axes object 2 contains 2 objects of type line, constantline.

이 과정을 반복하여 또 다른 axes 객체를 만들고 두 번째 구간에 플로팅합니다. 기본적으로 좌표축은 첫 번째 타일에 표시됩니다. 좌표축의 Layout.Tile 속성을 2로 설정하여 좌표축을 두 번째 타일로 이동합니다. 그런 다음, 두 개의 y축 제한이 모두 일치하도록 좌표축을 연결합니다.

% Create second plot
ax2 = axes(t);
ax2.Layout.Tile = 2;
plot(ax2,x,y)
xline(ax2,45,':');
ax2.YAxis.Visible = 'off';
ax2.Box = 'off';
xlim(ax2,[45 60])
xlabel(ax2,'Second Interval')

% Link the axes
linkaxes([ax1 ax2], 'y')

Figure contains 3 axes objects. Axes object 1 is empty. Axes object 2 contains 2 objects of type line, constantline. Axes object 3 contains 2 objects of type line, constantline.

제목을 추가하기 위해 타일 형식 차트 레이아웃을 title 함수에 전달합니다.

title(t,'Attenuated Cosine Function')

Figure contains 3 axes objects. Axes object 1 is empty. Axes object 2 contains 2 objects of type line, constantline. Axes object 3 contains 2 objects of type line, constantline.

개별 컬러바가 있는 두 개의 데이터 세트 표시하기

R2020b 이상

하나의 axes 객체는 하나의 컬러바만 담을 수 있습니다. 여러 개의 컬러바를 포함하는 시각화를 생성하려면 타일 형식 차트 레이아웃에 여러 axes 객체를 쌓으십시오. 하나의 좌표축만 표시되게 하되, 레이아웃의 바깥쪽 타일에 각 컬러바를 나란히 표시합니다.

두 개의 거품 차트에 대한 좌표 벡터, 크기 데이터, 색 데이터를 만듭니다.

x = 1:15;
n = 70 * randn(1,15) + 50;
y1 = n + x.^2; 
y2 = n - linspace(1,225,15);
sz1 = rand(1,15);
sz2 = rand(1,15);
c = linspace(1,10,15);

타일 형식 차트 레이아웃에 각각 하나의 거품 차트를 포함하는 두 개의 axes 객체를 쌓습니다.

  • 1×1 타일 형식 차트 레이아웃 t를 만듭니다.

  • axes 객체 ax1winter 컬러맵이 있는 거품 차트를 만듭니다.

  • axes 객체 ax2autumn 컬러맵이 있는 거품 차트를 만듭니다. Visible 속성을 'off'로 설정하여 이 axes 객체가 표시되지 않도록 합니다.

  • axes 객체들을 연결하여 서로 동기화된 상태로 유지합니다. 이 경우, t의 자식을 linkaxes 함수에 전달할 수 있습니다. 또는, 개별 axes 객체의 벡터를 함수에 전달할 수도 있습니다.

% create first bubble chart with winter colormap
t = tiledlayout(1,1);
ax1 = axes(t); 
bubblechart(ax1,x,y1,sz1,c)
colormap(ax1,'winter')

% create second bubble chart with autumn colormap
ax2 = axes(t);
bubblechart(ax2,x,y2,sz2,c)
colormap(ax2,'autumn')
ax2.Visible = 'off';

% link the limits of axes
linkaxes(t.Children)

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

각 axes 객체에 대해 컬러바를 레이블과 함께 레이아웃의 동쪽 타일에 표시합니다. 레이아웃은 컬러바를 배치하여 정렬된 상태로 유지합니다.

cb1 = colorbar(ax1);
cb1.Layout.Tile = 'east';
cb1.Label.String = 'Time (s)';

cb2 = colorbar(ax2);
cb2.Layout.Tile = 'east';
cb2.Label.String = 'Concentration (M)';

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

참고 항목

함수

관련 항목