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

Matplotlib에서 각 Y축 서브플롯의 첫 번째·마지막 눈금 레이블 제거하는 방법

개요

Matplotlib으로 여러 개의 서브플롯을 세로로 배치하면, 인접한 서브플롯 경계 부근에서 Y축의 첫 번째(가장 아래) 눈금 레이블과 마지막(가장 위) 눈금 레이블이 서로 겹쳐 보기 불편한 경우가 자주 발생합니다. 이럴 때 해당 눈금 레이블만 선택적으로 숨기면 그래프를 훨씬 깔끔하게 정리할 수 있습니다.

각 Y축 서브플롯의 첫 번째와 마지막 눈금 레이블을 제거하려면 다음 단계를 따르면 됩니다.

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백을 조정합니다.
  • figure와 서브플롯 집합을 생성합니다.
  • 축(axes)을 순회하면서 첫 번째와 마지막 눈금 레이블의 visible=False로 설정합니다.
  • show() 메서드를 호출하여 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt

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

fig, ax = plt.subplots(2, sharex=True)

for a in ax:
    plt.setp(a.get_yticklabels()[0], visible=False)
    plt.setp(a.get_yticklabels()[-1], visible=False)

plt.show()

코드 설명

  • plt.rcParams: 그림 크기를 7.50 × 3.50인치로 지정하고, figure.autolayout 옵션을 활성화해 서브플롯 간 여백을 자동으로 조절합니다.
  • plt.subplots(2, sharex=True): X축을 공유하는 두 개의 세로 방향 서브플롯을 한 번에 생성합니다.
  • a.get_yticklabels()[0]: 가장 아래쪽(첫 번째) 눈금 레이블을, [-1]: 가장 위쪽(마지막) 눈금 레이블을 가리킵니다.
  • plt.setp(..., visible=False): 해당 눈금 레이블 객체의 속성을 변경하여 화면에서만 숨깁니다. 눈금(tick) 자체나 데이터에는 영향을 주지 않습니다.

실행 결과

Matplotlib에서 각 Y축 서브플롯의 첫 번째·마지막 눈금 레이블 제거하는 방법

위 코드를 실행하면 두 서브플롯 모두 Y축의 맨 위와 맨 아래 눈금 레이블이 표시되지 않아, 인접한 서브플롯 사이의 레이블 겹침 없이 깔끔한 그래프를 얻을 수 있습니다.