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

Matplotlib 축 값 변환과 눈금 빈도 재정의 방법 완벽 가이드

Matplotlib에서 그래프의 축 값을 변환하거나 크기를 조정하고, 눈금(tick) 빈도를 재정의하려면 xticks() 메서드를 사용하여 눈금 위치와 레이블 목록을 직접 지정하면 됩니다. 이 방법을 활용하면 X축의 표시 단위를 원하는 값으로 바꾸거나, 눈금이 나타나는 간격을 자유롭게 조절할 수 있습니다.

구현 순서

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

  • 데이터 포인트 개수를 담을 변수 n을 초기화합니다.

  • Numpy를 사용하여 x, y 데이터 포인트를 생성합니다.

  • plot() 메서드로 x, y 데이터를 그래프에 그립니다.

  • 눈금 위치(ticks)눈금 레이블(tick labels) 목록을 만듭니다.

  • xticks() 메서드를 호출하여 축 스케일을 배치하고 눈금 빈도를 재정의합니다.

  • show() 메서드로 그래프를 화면에 출력합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
n = 10
x = np.linspace(-2, 2, n)
y = np.exp(x)
plt.plot(x, y)
xticks = [i for i in range(int(n/2))]
xtick_labels = ["x"+str(i) for i in range(int(n/2))]
plt.xticks(xticks, xtick_labels)
plt.show()

코드 설명

위 예제에서는 np.linspace(-2, 2, n)으로 -2부터 2까지 10개의 균등한 x값을 생성하고, 이에 대한 지수 함수 y = exp(x)를 계산하여 그래프를 그립니다.

핵심은 마지막 부분의 plt.xticks(xticks, xtick_labels)입니다. 첫 번째 인수인 xticks는 눈금이 표시될 실제 좌표 위치를 담은 리스트이며, 두 번째 인수인 xtick_labels는 각 눈금 자리에 대신 표시할 텍스트 레이블 리스트입니다. 즉, 원래의 수치 좌표 대신 "x0", "x1", ... 형태의 사용자 정의 라벨로 X축이 재구성되는 것입니다.

실행 결과

Matplotlib 축 값 변환과 눈금 빈도 재정의 방법 완벽 가이드

결과 그래프를 보면 X축의 기본 숫자 눈금이 "x0"부터 "x4"까지의 문자열 레이블로 교체된 것을 확인할 수 있습니다. 이처럼 xticks()를 활용하면 날짜, 카테고리 이름 등 임의의 값으로 축을 변환하는 것이 가능하며, Y축에도 동일하게 yticks() 메서드를 적용할 수 있습니다.