Bunny Code

Matplotlib x축 선형 그대로 표현 방법만 바꾸기 (1e8 → 108) 본문

Python Basic

Matplotlib x축 선형 그대로 표현 방법만 바꾸기 (1e8 → 108)

버즈밴드 2023. 11. 25. 21:56

논문 Figure를 그리다 보면 그래프 안의 요소들을 바꾸어야 할 일들이 많다. 

 

선의 색상, 두께, 글자 크기 등 많은 것들은 검색을 통해 쉽게 바꿀 수 있지만, 

x축 표현 방법과 관련 숫자 크기를 바꾸는 내용은 쉽게 찾을 수 없어 직접 포스팅하고자 한다. 

 

무슨 상황인지 설명을 먼저 해보자. 

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100) * 10**7
y = np.ones_like(x) * 5

plt.figure(figsize=(6, 6))
plt.plot(x, y, 'r-')
plt.show()

 

위와 같이 코드를 작성하면, 다음의 그래프를 그릴 수 있다. 

문제는 x축의 1e8 부분이다.

제출하고자 하는 journal 혹은 conference에 따라 1e8이 아니라 10의 거듭제곱 표현 방식인 108로 작성해야할 때가 있다. 

이와 같은 문제를 검색하면 그래프의 x축을 선형 축이 아닌 로그 축으로 바꾸는 방법들이 주로 나와 답답했는데 간단한 해결방법을 찾았다.

 

아래 코드 한줄이면 해결 가능하다.

plt.gca().ticklabel_format(axis='x', useMathText=True)

 

108의 크기도 그래프의 다른 숫자들과 마찬가지로 fontsize를 통해 조절가능하다. 

원하는 fontsize를 다음과 같이 입력하면 된다.

plt.gca().xaxis.get_offset_text().set_fontsize(20)

 

코드 두 줄을 추가한 그래프를 보면 축을 표현하는 방법과 그 크기가 잘 바뀐 것을 확인할 수 있다.