Python의 Matplotlib에서 X축 눈금을 π(파이)의 배수로 표시하고 싶다면, 눈금 위치와 레이블을 직접 지정하는 방식으로 간단하게 구현할 수 있습니다. 삼각함수 그래프처럼 주기적인 데이터를 다룰 때 특히 유용한 기법입니다.
구현 단계
데이터 준비: π 변수를 초기화하고, NumPy를 사용해 theta와 y 데이터 포인트를 생성합니다.
그래프 그리기:
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축에 π 단위 표기를 적용합니다.
실행 결과

위 코드를 실행하면 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))
이 방식은 데이터 범위가 바뀌어도 자동으로 π의 배수 형태로 눈금 레이블이 표시되므로, 재사용 가능한 코드를 작성할 때 권장됩니다.