여러 개의 스케일과 좌표축 제한을 사용하여 데이터 표시하기
여러 개의 스케일과 축 제한을 사용하여 데이터를 시각화하기 위해 다양한 기법을 사용할 수 있습니다. 예를 들어, 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)
yyaxis right
를 호출하여 오른쪽 y축을 활성화합니다. 그런 다음, 증폭된 사인파를 플로팅합니다.
yyaxis right
y2 = sin(3*x).*exp(0.5*x);
plot(x,y2)
여러 개의 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
을 만듭니다.x1
과y1
을 빨간색 선으로 플로팅하고ax1
을 대상 좌표축으로 지정합니다.플로팅된 선과 일치하도록 x축과 y축의 색을 변경합니다. 플로팅한 후에 좌표축의 속성을 설정하면 설정이 유지됩니다.
t = tiledlayout(1,1); ax1 = axes(t); plot(ax1,x1,y1,'-r') ax1.XColor = 'r'; ax1.YColor = 'r';
두 번째 axes 객체를 만들고 두 번째 데이터 세트를 빨간색이 아닌 검은색으로 플로팅합니다. 그런 다음, 두 번째 axes 객체의 속성을 설정하여 x축과 y축을 이동하고 플롯이 서로 가리지 않도록 합니다.
axes
함수를 호출하고 부모 객체로t
를 지정하여 axes 객체ax2
를 만듭니다.x2
와y2
를 검은색 선으로 플로팅하고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';
불연속 x축에 데이터 플로팅하기
R2019b 이상
타일 형식 차트 레이아웃을 사용하여 하나의 축을 따라 구간으로 분할된 모양의 플롯을 표시할 수 있습니다. 예를 들어, x축의 한 부분을 제외하여 다른 관심 영역에 집중하려고 할 수 있습니다.
좌표 벡터 x
와 y
를 만듭니다.
x = 0:0.1:60; y = 4.*cos(x)./(x+2);
두 개의 타일을 포함하는 타일 형식 차트 레이아웃을 만들고 두 개의 타일 모두에 걸쳐 axes 객체를 배치합니다. 최종적으로 이 axes 객체는 다른 두 개의 axes 객체 뒤의 배경에 표시됩니다. x축 부분은 하나의 긴 x축 모양으로 보이도록 표시됩니다.
1
×2
타일 형식 차트 레이아웃t
를 만들고 타일 간격을 조밀하게 지정합니다. 타일 간격을 설정하면 x축 구간 사이의 간격 크기를 제어할 수 있습니다.axes
함수를 호출하고 부모 객체로t
를 지정하여 배경 좌표축bgAx
를 만듭니다. 모든 눈금을 제거하고 플롯 상자를 끄도록 이름-값 인수를 지정합니다.bgAx
의Layout.TileSpan
속성을[1 2]
로 설정하여 배경 좌표축을 두 타일에 걸쳐 배치합니다.
figure t = tiledlayout(1,2,'TileSpacing','compact'); bgAx = axes(t,'XTick',[],'YTick',[],'Box','off'); bgAx.Layout.TileSpan = [1 2];
첫 번째 타일의 bgAx
앞에 axes 객체를 만듭니다. x와 y를 플로팅하고 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')
이 과정을 반복하여 또 다른 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')
제목을 추가하기 위해 타일 형식 차트 레이아웃을 title
함수에 전달합니다.
title(t,'Attenuated Cosine Function')
개별 컬러바가 있는 두 개의 데이터 세트 표시하기
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 객체
ax1
과winter
컬러맵이 있는 거품 차트를 만듭니다.axes 객체
ax2
와autumn
컬러맵이 있는 거품 차트를 만듭니다.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)
각 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)';
참고 항목
함수
tiledlayout
|yyaxis
|axes