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

Matplotlib에서 주 눈금 레이블을 숨기고 보조 눈금 레이블만 표시하는 방법

Matplotlib에서 주 눈금(major tick) 레이블은 숨기고 보조 눈금(minor tick) 레이블만 표시하고 싶다면 setp() 메서드를 활용하면 됩니다. 이 글에서는 그 구현 과정을 단계별로 살펴보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변 여백(padding)을 조정합니다.

  • numpy를 사용해 x, y 데이터 포인트를 생성합니다.

  • x, y 데이터를 플롯합니다.

  • setp() 메서드로 아티스트(artist) 객체에 속성을 설정하여 주 눈금 레이블을 숨깁니다.

  • show() 메서드로 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt
import numpy as np

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

x = np.linspace(1, 10, 100)
y = np.log(x)

plt.plot(x, y)

# x축의 주 눈금 레이블 숨기기
plt.setp(plt.gca().get_xmajorticklabels(), visible=False)

plt.show()

코드 설명

plt.gca()는 현재 축(Axes) 객체를 가져오는 함수이며, get_xmajorticklabels()는 x축의 주 눈금 레이블 목록을 반환합니다. 이렇게 얻어온 레이블 객체들에 대해 setp() 메서드로 visible=False 속성을 설정하면 해당 레이블이 화면에서 숨겨집니다. 눈금 선 자체는 그대로 유지되므로 축의 가독성을 해치지 않으면서 레이블만 제거할 수 있습니다.

보조 눈금 활성화하기

기본 상태에서는 보조 눈금이 표시되지 않는 경우가 많습니다. 이때는 minorticks_on()을 호출하거나 AutoMinorLocator를 사용해 보조 눈금을 활성화할 수 있습니다.

from matplotlib.ticker import AutoMinorLocator

ax = plt.gca()
ax.minorticks_on()
ax.xaxis.set_minor_locator(AutoMinorLocator())
ax.tick_params(axis='x', which='minor', labelsize=8)

위 코드를 함께 사용하면 주 눈금 레이블 없이 보조 눈금 레이블만 원하는 크기로 표시할 수 있어, 데이터 밀도가 높은 그래프에서 더 세밀한 정보를 제공할 때 유용합니다.

실행 결과

코드를 실행하면 로그(log) 곡선이 그려진 그래프에서 x축의 주 눈금 레이블(1, 2, 3...)이 사라진 것을 확인할 수 있습니다.

Matplotlib에서 주 눈금 레이블을 숨기고 보조 눈금 레이블만 표시하는 방법