Bunny Code

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

Python Basic

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

버즈밴드 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의 거듭제곱 표현 방식인 $10^8$로 작성해야할 때가 있다. 

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

 

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

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

 

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

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

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

 

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

Comments