주요 콘텐츠

yyaxis

두 개의 y축이 있는 차트 생성

설명

yyaxis left는 왼쪽 y축과 연결된 현재 좌표축의 측면을 활성화합니다. 이후 그래픽스 명령은 왼쪽을 대상으로 합니다. 현재 좌표축에 두 개의 y축이 포함되어 있지 않은 경우, 이 명령은 두 번째 y축을 추가합니다. 축이 없는 경우, 이 명령은 두 개의 y축을 만듭니다.

예제

yyaxis right는 오른쪽 y축에 연결된 현재 좌표축의 측면을 활성화합니다. 이후 그래픽스 명령은 오른쪽을 대상으로 합니다.

yyaxis(ax,___)는 현재 좌표축 대신 좌표축 ax에서 활성화되는 측면을 지정합니다. 좌표축에 두 개의 y축이 포함되어 있지 않은 경우, 이 명령은 두 번째 y축을 추가합니다. 좌표축을 첫 번째 입력 인수로 지정합니다. 'left''right'에는 작은따옴표를 사용하십시오.

예제

예제

모두 축소

왼쪽과 오른쪽 모두에 y축이 있는 좌표축을 만듭니다. 왼쪽 y축에 대해 데이터 세트를 플로팅합니다. 그런 다음 yyaxis right를 사용하여 오른쪽을 활성화하고 이후 그래픽스 함수가 오른쪽을 대상으로 할 수 있도록 합니다. 오른쪽 y축에 대해 두 번째 데이터 세트를 플로팅하고 오른쪽 y축에 대한 제한을 설정합니다.

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

z = sin(3*x).*exp(0.5*x);
yyaxis right
plot(x,z)
ylim([-150 150])

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

두 개의 y축이 있는 차트를 생성하고 양측에 제목과 축 레이블을 추가합니다.

예제 파일 accidents.mat에서 행렬 hwydata를 불러옵니다. 왼쪽 y축에 hwydata의 다섯 번째 열을 산점도 플롯으로 생성합니다. 제목과 축 레이블을 추가합니다.

load('accidents.mat','hwydata')
ind = 1:51;
drivers = hwydata(:,5);
yyaxis left
scatter(ind,drivers)
title('Highway Data')
xlabel('States')
ylabel('Licensed Drivers (thousands)')

Figure contains an axes object. The axes object with title Highway Data, xlabel States, ylabel Licensed Drivers (thousands) contains an object of type scatter.

오른쪽 y축에 hwydata의 일곱 번째 열을 두 번째 산점도 플롯으로 생성합니다. 그런 다음, 오른쪽 y축에 레이블을 지정합니다.

pop = hwydata(:,7);
yyaxis right
scatter(ind,pop)
ylabel('Vehicle Miles Traveled (millions)')

Figure contains an axes object. The axes object with title Highway Data, xlabel States, ylabel Vehicle Miles Traveled (millions) contains 2 objects of type scatter.

hold on 명령을 사용하여 왼쪽 y축에 두 개의 선을 플로팅합니다.

x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left
plot(x,yl1)
hold on
plot(x,yl2)

오른쪽 y축에 두 개의 선을 플로팅합니다. hold 명령은 왼쪽 y축과 오른쪽 y축 모두에 영향을 미치므로 다시 실행할 필요가 없습니다. 플로팅한 후 hold를 다시 off로 설정합니다.

yr1 = x;
yr2 = x.^2;
yyaxis right
plot(x,yr1)
plot(x,yr2)
hold off

왼쪽을 활성화한 다음, cla 명령을 사용하여 지웁니다.

yyaxis left
cla

색 순서를 원하는 2개의 색으로 설정하여 좌표축의 각 변에 대한 색 체계를 지정합니다. R2019b부터, colororder 함수를 사용하여 색 순서를 설정할 수 있습니다. 그런 다음 왼쪽 y축에 인접한 두 개의 선을 플로팅하고 오른쪽 y축에 인접한 두 개의 선을 플로팅합니다. 범례를 추가합니다.

colororder({'b','m'})

yyaxis left
y = [1 2; 3 4];
plot(y)

yyaxis right
z = [4 3; 2 1];
plot(z)
legend

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

좌표축의 각 변에 대해 색 순서를 설정하여 개별 플롯 색을 제어합니다.

왼쪽 변에 인접한 세 개의 막대 차트를 플로팅합니다. 왼쪽의 색 순서를 디폴트 색 순서로 설정하여 각 막대 계열에 대해 서로 다른 색을 사용합니다.

yyaxis left
bar(magic(3));
colororder('default')

오른쪽 변에 인접한 세 개의 산점도 플롯을 플로팅합니다. 색 순서를 색 이름으로 구성된 배열로 설정하여 각 산점도 플롯에 대해 서로 다른 색을 사용합니다. 또는 RGB 3색으로 구성된 행렬을 사용하여 색을 지정할 수도 있습니다. 그런 다음 범례를 추가합니다.

yyaxis right
scatter([1 2 3],[2 5 2],'filled')
hold on
scatter([1 2 3],[3 4 1],'filled')
scatter([1 2 3],[4 2 4],'filled')
hold off
colororder({'r','b','c'})
legend

Figure contains an axes object. The axes object contains 6 objects of type bar, scatter.

R2019b부터는 tiledlayout 함수와 nexttile 함수를 사용하여 플롯을 타일 형식 배열로 표시할 수 있습니다. tiledlayout 함수를 호출하여 2×1 타일 형식 차트 레이아웃을 만듭니다. nexttile 함수를 호출하여 axes 객체 ax1ax2를 만듭니다. ax1yyaxis에 대한 첫 번째 입력값으로 지정하여 상부 좌표축에 두 번째 y축을 추가합니다. 좌표축을 지정하지 않으면 yyaxis가 현재 좌표축에 두 번째 y축을 추가합니다.

x = linspace(1,10);
tiledlayout(2,1)

% Top plot
ax1 = nexttile;
yyaxis(ax1,'left')
plot(ax1,x,sin(x))
yyaxis(ax1,'right')
plot(ax1,x,exp(x))

% Bottom plot
ax2 = nexttile;
plot(ax2,1:10)

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

입력 인수

모두 축소

대상 좌표축으로, Axes 객체로 지정됩니다. Axes 객체를 지정하지 않으면 yyaxis는 현재 좌표축을 사용합니다.

제한 사항

  • 두 개의 y축을 사용할 때 다음 작업은 수행할 수 없습니다.

    • 좌표축 회전(2차원 보기에만 해당).

    • 주석 고정.

    • copyobj를 사용하여 axes 객체 복사

  • 좌표축 중 어느 쪽이 활성화되었는지 확인하려면 Axes 객체의 YAxisLocation 속성을 쿼리하십시오. 속성이 'left'로 설정되어 있으면 왼쪽이 활성화된 것이고, 'right'로 설정되어 있으면 오른쪽이 활성화된 것입니다. 두 개의 y축이 있는 Axes 객체의 YAxisLocation 속성은 읽기 전용입니다.

  • 활성화된 쪽을 지우려면 cla를 사용하십시오. 좌표축의 양쪽을 모두 지우고 오른쪽 y축을 제거하려면 cla reset을 사용하십시오. 또는 Axes 객체의 NextPlot 속성을 'replaceall'로 설정하여 다음 플로팅 명령이 양쪽을 모두 지우고 오른쪽 y축을 제거할 때까지 기다려도 됩니다.

  • Axes 객체의 Children 속성은 활성화된 변의 자식만 포함합니다. 양쪽의 자식에 모두 액세스하려면 allchild 함수를 사용하십시오.

알고리즘

모두 축소

버전 내역

R2016a에 개발됨