데이터의 값 범위가 매우 넓거나 지수적으로 증가하는 경우, 일반적인 선형 축보다 로그 스케일(log scale)을 사용하는 것이 그래프를 해석하기에 훨씬 유용합니다. Matplotlib에서는 yscale('log') 함수를 호출하는 것만으로 y축을 로그 스케일로 손쉽게 변경할 수 있습니다.
구현 단계
matplotlib과 numpy 라이브러리를 임포트합니다.
그림(figure) 크기를 설정하고 서브플롯 주변의 여백을 자동으로 조정합니다.
numpy를 이용해 x, y 데이터 포인트를 생성합니다.
yscale('log')을 호출하여 y축을 로그 스케일로 설정합니다.
plot 메서드로 x와 y 데이터를 그립니다.
legend() 메서드로 그림에 범례를 배치합니다.
show() 메서드를 사용해 최종 그래프를 화면에 표시합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# x, y 데이터 포인트 생성
x = np.linspace(1, 100, 1000)
y = np.log(x)
# y축을 로그 스케일로 설정
plt.yscale('log')
# x, y 데이터 플롯
plt.plot(x, y, c="red", lw=3, linestyle="dashdot", label="y=log(x)")
# 범례 표시
plt.legend()
# 그래프 출력
plt.show()
실행 결과
위 코드를 실행하면 y축이 로그 스케일로 표시된 다음과 같은 그래프가 출력됩니다.

참고로 x축도 로그 스케일로 변경하고 싶다면 xscale('log')을, 두 축을 모두 변경하려면 두 함수를 함께 사용하면 됩니다. 또한 plt.loglog(x, y)를 사용하면 양축 로그 스케일 그래프를 한 번에 그릴 수 있습니다.