Matplotlib에서 서로 다른 Y축 스케일을 가진 여러 개의 플롯을 하나의 그래프에 겹쳐서 그리려면 twinx() 메서드를 활용하면 됩니다. 이 방법을 사용하면 X축은 공유하면서 각 데이터 계열에 맞는 독립적인 Y축 스케일을 설정할 수 있습니다.
구현 단계
그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
plt.subplots()를 사용해 figure와 subplot(Axes) 객체를 생성합니다.
첫 번째 축(ax1)에서 plot() 메서드로 데이터를 그립니다. 이때 X축은 공유되고 Y축은 별도의 스케일을 사용합니다.
twinx() 메서드로 X축을 공유하는 쌍둥이(twin) 축을 생성합니다.
두 번째 축(ax2)에서도 plot() 메서드로 데이터를 그립니다. 이 축은 첫 번째 축과 독립적인 Y축 스케일을 가집니다.
show() 메서드를 호출하여 최종 그림을 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig, ax1 = plt.subplots() ax1.plot([1, 2, 3, 4, 5], color='red') ax2 = ax1.twinx() ax2.plot([11, 12, 31, 41, 15], color='blue') plt.show()
실행 결과

위 코드를 실행하면 빨간색 선과 파란색 선이 같은 X축 위에 겹쳐져 표시되며, 두 데이터 계열의 값 범위가 크게 달라도 각각의 Y축 스케일로 자연스럽게 비교할 수 있습니다. 오른쪽에 두 번째 Y축 눈금이 함께 나타나는 것을 확인할 수 있습니다.