Python/Matplotlib

[Python] 파이썬 matplotlib 그래프 축 스케일 설정하기 - xscale, yscale, log, symlog

나비🦋 2024. 5. 20. 23:40
반응형



안녕하세요! 나비입니다 🦋

이번 포스팅에서는 파이썬 matplotlib을 이용해서 축의 스케일을 바꾸는 방법에 대해 다뤄보려 합니다.

축의 스케일은, 그래프를 보다 더 간결하고 예쁘게 표현하기 위해 도입하는 장치로, 주로 로그함수를 기반으로 이루어집니다.

축 스케일 조정은 그래프에 나타낼 x값 또는 y값의 최솟값, 최댓값 사이의 간격이 너무 커서 그래프로 보여주고자 하는 내용이 잘 표현되지 않을 때 자주 사용합니다.

matplotlib에서 축 스케일을 조정하기 위해 사용하는 메소드는 xscale, yscale입니다.

순서대로 살펴보도록 하겠습니다.

plt.xscale


xscale 함수를 사용하는 예제에서는 symlog 스케일로 바꾸는 것을 보여드리겠습니다.

symlog란 symmetrical log scale의 줄임말로, 축의 원점을 기준으로 대칭인 로그 형태로 표시됩니다.

말로만 들으면 와닿지 않으니 아래 예제 코드를 참고해주세요.

import numpy as np
import matplotlib.plt as pyplot

X= np.linspace(-10, 10, 100)
Y = X**3

plt.plot(X, Y)
plt.xscale(“symlog”)
plt.show()


Y축은 디폴트값인 linear(선형) 형태로 출력이 되었는데, X축 값들의 눈금 분포가 달라진 것을 확인할 수 있습니다.

양쪽으로 log를 씌웠기 때문에, 10의 거듭제곱을 기준으로 그래프가 표현되는 것입니다.




plt.yscale


yscale 함수도 마찬가지로 로그를 취하기 위해서 사용하는 경우가 많습니다.

특히, 지수함수를 보기 쉽게 나타내고 싶을 때 y값에 로그를 취해서 linear한 형태로 만드는 상황에서 yscale의 파라미터 log를 넣어줄 때가 있습니다.

아래 예제에서, linear한 스케일과 log를 취한 스케일의 차이점을 보여드리겠습니다.

import numpy as np
import matplotlib.pyplot as plt

X = np.linspace(0, 10, 200)
Y = np.exp(X)

plt.plot(X,Y)

#plt.yscale(“linear”)
plt.yscale(“log”)
plt.show()



위쪽의 지수함수 그래프는 linear할 때고, 아래쪽의 직선 그래프는 log를 취했을 때의 그래프입니다.

직선이 훨씬 더 보기 편하고 간단하기 때문에, 지수함수 기반의 그래프는 log 스케일로 표현하곤 합니다.

반응형