Python의 Matplotlib 라이브러리를 사용하면 로그(log) 스케일로 표현되는 Y축 빈(bin)을 가진 그래프를 간단하게 그릴 수 있습니다. 데이터 값의 범위가 넓거나 지수적으로 증가하는 경우, 로그 스케일을 적용하면 그래프를 훨씬 직관적으로 해석할 수 있습니다.
로그 Y축 그래프를 그리려면 아래 단계를 순서대로 따라 하면 됩니다.
구현 단계
NumPy를 사용하여 x축과 y축에 사용할 데이터 포인트를 생성합니다.
yscale()메서드에'log'값을 전달하여 Y축 스케일을 로그 스케일로 설정합니다.plot()메서드로 x와 y 데이터를 플롯합니다. 이때linestyle="dashdot"옵션으로 선 스타일을 지정하고,label="y=log(x)"옵션으로 범례에 표시될 이름을 지정합니다.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
# 1부터 100까지 1000개의 균등한 x값 생성
x = np.linspace(1, 100, 1000)
y = np.log(x)
# Y축을 로그 스케일로 설정
plt.yscale('log')
# 그래프 플롯
plt.plot(x, y, c="red", lw=3, linestyle="dashdot", label="y=log(x)")
plt.legend()
plt.show()실행 결과
위 코드를 실행하면 빨간색 일점쇄선(dashdot)으로 그려진 y = log(x) 곡선이 표시되며, Y축 눈금은 10⁰, 10¹, 10²처럼 로그 단위로 배치됩니다. 덕분에 로그 함수의 완만한 증가 추세를 한눈에 파악할 수 있습니다.
핵심 포인트 정리
plt.yscale('log'): Y축을 로그 스케일로 변환하는 핵심 메서드입니다. X축에 적용하려면plt.xscale('log')를 사용하면 됩니다.np.linspace(1, 100, 1000): 로그 함수는 x가 0 이하일 때 정의되지 않으므로, 시작값을 1로 지정하는 것이 안전합니다.label과legend(): 여러 곡선을 비교할 때 범례를 함께 사용하면 가독성이 크게 향상됩니다.