Software/MATLAB

[MATLAB] yyaxis : Plot y축 좌우 2개 설정

_winmin 2025. 1. 2. 17:05

시간 같은 동일한 x축을 공유하는 두 데이터의 y scale 차이가 클 때, 단순히 두 데이터를 하나의 figure에 plot하면 비교가 어려운 경우가 있다. 그럴 때 오른쪽에 y축을 하나 더 생성할 수 있다. 

 

한 축에 두 데이터 담을 때 

figure()
x = linspace(0,25);

y1 = sin(x/2);
y2 = 300 + cos(x/4);

plot(x,y1)
hold on
plot(x,y2)

legend('y1','y2')

 

Scale의 차이로 인해 두 데이터의 파형이 잘 보이지 않는다. 

 

y축을 따로 생성했을 때

yyaxis 명령으로 그리고 싶은 좌우 축을 선택한다. 

figure()

x = linspace(0,25);
y1 = sin(x/2);
y2 = 300 + cos(x/4);

yyaxis left % 이 코드 뒤로 올 plot은 왼쪽의 y축에 그릴 것
plot(x,y1)

yyaxis right % 이 코드 뒤로 올 plot은 오른쪽의 y축에 그릴 것
plot(x,y2)

legend('y1','y2')

 

서로 다른 scale을 가진 데이터도 y축을 따로 설정해주니 한 눈에 각각의 파형이 보일 뿐만 아니라, 데이터 간 비교도 훨씬 쉬워진다.

 

 

비고: 축 색깔 지정

축을 생성하기 이전, color order를 새로 설정해준다. 

색은 RGB 값을 포함하는 1x3 행렬로 표현된다.

 

figure()

newcolors = [0.40 0.30 0.90; 0.50 0.65 0.15]; % [R G B]
colororder(newcolors) % 새로운 color order 지정, 축 생성하기 이전에 실행되어야 함


x = linspace(0,25);
y1 = sin(x/2);
y2 = 300 + cos(x/4);

yyaxis left 
plot(x,y1)

yyaxis right 
plot(x,y2)

legend('y1','y2')

 

축과 plot의 색이 모두 변경되었다!

 


Reference

https://www.mathworks.com/help/matlab/creating_plots/plotting-with-two-y-axes.html