matplotlib에서 ax.loglog(x, y) 메서드와 set_major_formatter() 메서드를 함께 사용하면 축의 눈금 레이블을 원하는 계산된 값으로 손쉽게 교체할 수 있습니다.
특히 로그 스케일 플롯에서는 기본 숫자 대신 지수(exponent) 형태나 사용자 지정 형식으로 레이블을 표시해야 하는 경우가 많은데, 이때 ticker.LogFormatterExponent() 같은 포매터(formatter)를 활용하면 깔끔하게 해결됩니다.
구현 단계
plt.rcParams로 figure 크기를 설정하고, 서브플롯 사이 및 주변 여백(padding)을 자동으로 조정합니다.
plt.subplots()를 호출하여 figure와 서브플롯(ax)을 생성합니다.
ax.loglog()를 사용해 X축과 Y축 모두에 로그 스케일이 적용된 플롯을 그립니다. 이 예제에서는 np.logspace()로 생성한 값과 그 제곱 값을 사용합니다.
ax.xaxis.set_major_formatter()에 ticker.LogFormatterExponent()를 전달하여 X축 주 눈금(major tick)의 레이블 포맷을 지정합니다.
plt.show() 메서드를 호출해 최종 figure를 화면에 표시합니다.
예제 코드
import numpy as np from matplotlib import pyplot as plt, ticker plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig, ax = plt.subplots() ax.loglog(np.logspace(0, 5), np.logspace(0, 5)**2) ax.xaxis.set_major_formatter(ticker.LogFormatterExponent()) plt.show()
실행 결과

위 코드를 실행하면 X축과 Y축이 모두 로그 스케일로 표시되며, X축의 눈금 레이블이 일반 숫자 대신 지수 형태(10⁰, 10¹, 10² ...)로 출력되는 것을 확인할 수 있습니다.
Y축에도 동일한 형식을 적용하고 싶다면 ax.yaxis.set_major_formatter(ticker.LogFormatterExponent()) 코드를 한 줄 추가하기만 하면 됩니다. 필요에 따라 ticker.FuncFormatter를 사용하면 완전히 사용자 지정된 계산식 기반의 레이블도 구현할 수 있습니다.