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

Python Matplotlib에서 π(파이)의 배수로 축 눈금 설정하는 방법

Python의 Matplotlib에서 X축 눈금을 π(파이)의 배수로 표시하고 싶다면, 눈금 위치와 레이블을 직접 지정하는 방식으로 간단하게 구현할 수 있습니다. 삼각함수 그래프처럼 주기적인 데이터를 다룰 때 특히 유용한 기법입니다.

구현 단계

  • 데이터 준비: π 변수를 초기화하고, NumPy를 사용해 thetay 데이터 포인트를 생성합니다.

  • 그래프 그리기: plot() 메서드로 theta와 y 데이터를 시각화합니다.

  • 눈금 설정: xticks() 메서드로 X축의 현재 눈금 위치와 레이블을 지정합니다. 이때 레이블에 'π/2', 'π' 같은 문자열을 사용합니다.

  • 여백 조정: margins() 메서드로 자동 스케일링 여백을 설정합니다.

  • 그래프 출력: show() 메서드로 완성된 그래프를 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt

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

pi = np.pi
theta = np.arange(-2 * pi, 2 * pi + pi / 2, step=(pi / 2))
y = np.sin(theta)

plt.plot(theta, y)
plt.xticks(theta, ['-2π', '-3π/2', '-π', '-π/2', '0',
                   'π/2', 'π', '3π/2', '2π'])
plt.margins(x=0)
plt.show()

코드 설명

np.arange(-2 * pi, 2 * pi + pi / 2, step=(pi / 2))는 −2π부터 2π까지 π/2 간격으로 총 9개의 눈금 위치를 생성합니다. 이후 xticks()의 첫 번째 인자로 눈금 위치를, 두 번째 인자로 각 위치에 대응하는 레이블 리스트를 전달하여 X축에 π 단위 표기를 적용합니다.

실행 결과

Python Matplotlib에서 π(파이)의 배수로 축 눈금 설정하는 방법

위 코드를 실행하면 X축 눈금이 −2π부터 2π까지 π/2 간격으로 표시되는 사인 곡선 그래프가 나타납니다.

참고: 더 유연한 방법 — FuncFormatter 활용

눈금 개수나 범위가 동적으로 변하는 경우에는 FuncFormatter를 사용하면 더 견고하게 구현할 수 있습니다.

from matplotlib.ticker import FuncFormatter

def pi_formatter(x, pos):
    n = int(round(x / (np.pi / 2)))
    return {0: '0', 1: 'π/2', 2: 'π', 4: '2π'}.get(abs(n), f'{n}π/2')

ax = plt.gca()
ax.xaxis.set_major_formatter(FuncFormatter(pi_formatter))

이 방식은 데이터 범위가 바뀌어도 자동으로 π의 배수 형태로 눈금 레이블이 표시되므로, 재사용 가능한 코드를 작성할 때 권장됩니다.