Python/Matplotlib

[Matplotlib] 파이썬 그래프 축 로그 스케일 지정 - xscale, yscale

jimmy_AI 2022. 10. 7. 17:09
반응형

Python plt log scale axis

파이썬에서 x축 및 y축의 눈금을 로그(log) 스케일로 지정할 수 있는

xscale 및 yscale 함수에 대하여 사용 예제를 살펴보도록 하겠습니다.

 

우선, 다음과 같이 간단한 바 그래프가 있다고 가정해 보겠습니다.

import matplotlib.pyplot as plt

plt.bar(['A', 'B', 'C', 'D', 'E'], [100, 500, 1000, 5000, 10000], color = 'b', alpha = 0.5)

plt.show()

이제 위 그래프의 y축을 로그 스케일로 바꾸어보도록 하겠습니다.

 

 

log 옵션 vs symlog 옵션

x축은 plt.xscale, y축은 plt.yscale 함수로 축의 스케일을 변경할 수 있습니다.

여기서 옵션을 'log' 혹은 'symlog'로 선택하면 log scale 변환이 가능한데,

두 옵션을 적용한 차이는 아래 예시와 같으니 더 적합한 것으로 사용하시면 됩니다.

# log 옵션 적용
plt.bar(['A', 'B', 'C', 'D', 'E'], [100, 500, 1000, 5000, 10000], color = 'b', alpha = 0.5)
plt.yscale('log')

plt.show()

 

# symlog 옵션 적용
plt.bar(['A', 'B', 'C', 'D', 'E'], [100, 500, 1000, 5000, 10000], color = 'b', alpha = 0.5)
plt.yscale('symlog')

plt.show()

 

반응형

 

밑변환 방법

기본적으로는 위의 예시처럼 밑이 10인 log를 기준으로 축 스케일이 정해지지만,

xscale에서는 basex, yscale에서는 basey 옵션을 지정하면 base를 바꿀 수 있습니다.

# 밑(base) = 2로 변환
plt.bar(['A', 'B', 'C', 'D', 'E'], [100, 500, 1000, 5000, 10000], color = 'b', alpha = 0.5)
plt.yscale('symlog', basey = 2)

plt.show()

 

참고로, x축을 로그 스케일로 바꾸고 싶은 경우에도 마찬가지 원리로 적용해주시면 되는데,

적용 예시는 아래의 코드 및 그래프를 참고해주시면 됩니다.

# x축 로그 스케일 지정 예시
plt.plot([100, 500, 1000, 5000, 10000], [10, 9, 11, 8, 12])
plt.xscale('log', basex = 2)

plt.show()