Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib에서 첫 번째 X축 아래에 두 번째 X축 추가하는 방법

Matplotlib에서는 하나의 그래프에 두 개의 X축을 동시에 표시할 수 있습니다. 예를 들어 위쪽 축에는 온도를, 아래쪽 축에는 동일한 데이터를 다른 단위나 스케일로 나타내야 할 때 유용합니다. 이 글에서는 twiny() 메서드를 사용해 Y축을 공유하는 두 번째 X축을 추가하는 방법을 단계별로 살펴봅니다.

구현 단계

  1. 그림(figure) 크기를 설정하고 서브플롯 주변의 여백을 자동으로 조정합니다.
  2. gca() 메서드로 현재 축(ax1)을 가져옵니다.
  3. twiny() 메서드로 Y축을 공유하는 쌍둥이 축(ax2)을 생성합니다.
  4. 각 축에 원하는 X축 눈금(tick) 위치를 설정합니다.
  5. 각 축에 X축 레이블을 지정합니다.
  6. show() 메서드로 결과 그래프를 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 현재 축 가져오기
ax1 = plt.gca()

# Y축을 공유하는 두 번째 X축 생성
ax2 = ax1.twiny()

# 각 축의 눈금과 레이블 설정
ax2.set_xticks([1, 2, 3, 4, 5])
ax1.set_xlabel("X-axis 1")
ax2.set_xlabel("X-axis 2")

plt.show()

실행 결과

Matplotlib에서 첫 번째 X축 아래에 두 번째 X축 추가하는 방법 Matplotlib에서 첫 번째 X축 아래에 두 번째 X축 추가하는 방법

참고: 두 번째 X축을 하단으로 이동하기

twiny()로 생성한 축은 기본적으로 그림의 상단에 배치됩니다. 따라서 두 번째 X축을 첫 번째 X축 바로 아래쪽에 배치하려면 눈금과 레이블의 위치를 명시적으로 지정해 주어야 합니다.

ax2.xaxis.set_ticks_position("bottom")
ax2.xaxis.set_label_position("bottom")
ax2.spines["bottom"].set_position(("outward", 40))

여기서 ("outward", 40)은 첫 번째 X축에서 두 번째 축까지의 간격을 포인트 단위로 지정한 값입니다. 이 숫자를 조절하면 두 축 사이의 거리를 자유롭게 변경할 수 있습니다.

마무리

이처럼 twiny()를 활용하면 하나의 그래프에 서로 다른 두 개의 X축 눈금 체계를 손쉽게 구현할 수 있습니다. 단위 변환, 시간-거리 대응처럼 하나의 데이터를 두 가지 관점에서 보여줘야 할 때 유용하게 활용해 보세요.