Matplotlib에서 하나의 그래프에 여러 개의 X축 또는 Y축을 표시하려면 twinx() 또는 twiny() 메서드를 활용하면 됩니다. 이 방법을 사용하면 축 하나를 공유하면서 나머지 축은 독립적으로 설정한 보조 축을 만들 수 있어, 단위나 스케일이 다른 두 데이터를 한 화면에서 비교하기에 매우 유용합니다.
구현 단계
subplots() 메서드를 사용하여 figure와 subplot(축 객체)을 생성합니다.
[1, 2, 3, 4, 5] 데이터를 왼쪽 Y축 스케일에 빨간색으로 플롯합니다.
twinx() 메서드를 사용하여 X축을 공유하고 Y축만 독립적인 쌍둥이 축(ax2)을 만듭니다.
[11, 12, 31, 41, 15] 데이터를 오른쪽 Y축 스케일에 파란색으로 플롯합니다.
tight_layout() 메서드를 사용하여 subplot 주변과 사이의 여백을 자동으로 조정합니다.
show() 메서드를 호출하여 figure를 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 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') fig.tight_layout() plt.show()
실행 결과

참고 사항
X축을 공유하고 위쪽에 독립적인 X축을 추가하고 싶다면 twiny() 메서드를 사용하면 됩니다. 사용법은 twinx()와 동일하며, 아래 코드처럼 적용할 수 있습니다.
ax2 = ax1.twiny() # X축을 공유하는 대신, 위쪽에 새로운 X축 생성
이처럼 twinx()와 twiny()를 조합하면 온도와 습도, 매출과 판매량처럼 서로 다른 단위를 가진 데이터를 하나의 차트에서 직관적으로 비교할 수 있습니다.