Main Content

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 함수를 사용하십시오.

알고리즘

모두 축소

그리드 선

그리드 선은 왼쪽 y축의 눈금 위치와 일치합니다.

색과 선 스타일

좌표축의 특정 측면에 연결된 플롯은 해당 y축과 같은 색을 사용합니다. 측면에 선이 여러 개 있으면 선 스타일 순서대로 선에 스타일이 적용됩니다. 왼쪽 y축에는 Axes 객체의 색 순서 중 첫 번째 색이 사용되고, 오른쪽 y축에는 두 번째 색이 사용됩니다.

차트가 포함된 Axes 객체에 두 번째 y축을 추가해도 기존 차트와 왼쪽 y축의 색은 변경되지 않습니다. 오른쪽 y축에는 색 순서에서 다음 색이 사용됩니다.

axes 속성

y축에 관련된 axes 속성은 두 값을 가집니다. 그러나 MATLAB®은 활성화된 쪽의 값에 대한 액세스만 제공합니다. 예를 들어, 왼쪽이 활성화된 경우 Axes 객체의 YLim 속성은 왼쪽 y축의 제한을 포함합니다. 그러나 오른쪽이 활성화된 경우 YLim 속성은 오른쪽 y축의 제한을 포함합니다.

Axes 객체의 YAxis 속성이 각 y축에 대해 하나씩 두 개의 ruler 객체의 배열을 포함하는 경우는 예외입니다. 눈금자를 사용하면 어느 쪽이 활성화되었는지에 상관없이 각 y축에 액세스할 수 있습니다. 예제는 두 개의 y축을 가진 차트의 속성 수정하기 항목을 참조하십시오.

버전 내역

R2016a에 개발됨