반갑습니다~ 꽁냥이입니다.
가끔씩 y축 눈금 라벨의 숫자 형식(Number Format)을 바꾸고 싶을 때가 있는데요. 이번 포스팅에서는 Matplotlib에서 y축 눈금의 숫자 형식을 바꾸는 방법에 대해서 알아보려고 해요. 여기서는 백분율(%), 천단위 콤마(,), 과학적 표기(Scientific Notation) 변경 등에 대한 내용을 다룹니다.
Matplotlib - y축 눈금 숫자 형식(Number Format) 바꾸기
먼저 데이터를 만들어주고 기본 라인 차트를 그려봅니다.
import matplotlib.pyplot as plt
import numpy as np
import warnings
warnings.filterwarnings('ignore')
n = 20
data=np.random.normal(loc=10000,size=n, scale=10000) + 100000
fig = plt.figure(figsize=(8,5))
fig.set_facecolor('white')
plt.plot(range(n), data)
plt.show()
1) 천단위 콤마 찍기
먼저 y축 눈금 숫자에 천 단위로 콤마를 찍어보겠습니다. 방법은 어렵지 않습니다.
plt.gca().get_yticks를 이용하여 현재 눈금 정보를 가져오고 이를 문자 포맷팅 함수 format을 이용하여 천 단위로 콤마 찍는 형식으로 변환합니다. 그리고 그 결과를 set_yticklabels에 넘겨주면 됩니다.
fig = plt.figure(figsize=(8,5))
fig.set_facecolor('white')
plt.plot(range(n), data)
current_values = plt.gca().get_yticks()
plt.gca().set_yticklabels(['{:,.0f}'.format(x) for x in current_values])
plt.show()
y축 눈금 숫자 형식(Number Fomat)이 의도한 대로 잘 바뀐 것을 알 수 있습니다.
2) 지수 표현 형식(Scientific Notation) 없애기
y값이 엄청 큰 값을 포함하는 경우 y축이 아래와 같이 지수 표현 형식(Scientific Notation)으로 표현되는 경우가 있습니다. 이때 앞서 배운 것을 활용하면 그 형식을 바꿀 수 있습니다.
n = 20
data=np.random.normal(loc=0,size=n, scale=500000) + 1000000
fig = plt.figure(figsize=(8,5))
fig.set_facecolor('white')
plt.plot(range(n), data)
current_values = plt.gca().get_yticks()
plt.gca().set_yticklabels(['{:.0f}'.format(x) for x in current_values])
plt.show()
3) 백분율(%)로 표시
이번엔 y축 눈금을 백분율(%) 형식으로 표시하는 법에 대해서 알아보겠습니다. 기존 코드와 거의 동일하고 format 함수를 백분율(%)로 표시되도록 변경했습니다.
n = 20
data=np.random.rand(n)
fig = plt.figure(figsize=(8,5))
fig.set_facecolor('white')
plt.plot(range(n), data)
current_values = plt.gca().get_yticks()
plt.gca().set_yticklabels(['{:.0%}'.format(x) for x in current_values])
plt.show()
이번 포스팅에서는 y축 눈금 숫자 형식을 바꾸는 법에 대해서 알아보았습니다. 오늘 배운 것을 응용하면 x축 숫자 형식도 바꿀 수 있습니다. 오늘 내용은 알아두시면 유용하게 써먹을 수 있어요. 지금까지 꽁냥이의 글 읽어주셔서 감사하다는 말씀드리며 이상 포스팅 마치겠습니다.
참고자료
https://queirozf.com/entries/matplotlib-examples-number-formatting-for-axes-labels
댓글