matplotlib으로 여러 형태의 그래프를 그리다보면 그래프 위에 값을 새기고 싶은 경우가 있을 것입니다.
이번 포스팅에서는 matplotlib에서 선 그래프 혹은 바 그래프 위에
해당 그래프의 값을 표시하는 방법을 말씀드리도록 하겠습니다.
plt 바 그래프 값 표시하기
import matplotlib.pyplot as plt
x = ['a', 'b', 'c', 'd']
y = [18.5, 13.3, 12.5, 14.2]
bar = plt.bar(x, y, color = 'pink')
plt.ylim(0, 22)
# 숫자 넣는 부분
for rect in bar:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width()/2.0, height, '%.1f' % height, ha='center', va='bottom', size = 12)
plt.show()
위와 같이 plt.bar 함수를 객체로 선언하고,
이 객체를 for 문으로 순회하면서
그래프의 값에 해당하는 height를 .get_height() 함수로 받아오고
plt.text 함수에서 숫자가 새겨지기를 원하는 높이, 소수점 포맷팅, 숫자의 위치, 글자 크기 등을 지정해주시면 됩니다.
위 그래프 예시는 소수점 첫째자리까지 표시한 예시를 보여드렸습니다.
꼭 그래프의 값이 아니더라도 plt.bar 객체를 for 문으로 순회하며 plt.text로 원하는 텍스트도 넣을 수 있습니다.
plt 선 그래프 값 표시하기
import matplotlib.pyplot as plt
x = ['a', 'b', 'c', 'd']
y = [18.5, 13.3, 12.5, 14.2]
line_graph = plt.plot(x, y, 'o-', color = 'red')
plt.ylim(0, 22)
# 숫자 넣는 부분, height + 0.25로 숫자 약간 위로 위치하게 조정
for i in range(len(x)):
height = y[i]
plt.text(x[i], height + 0.25, '%.1f' %height, ha='center', va='bottom', size = 12)
plt.show()
이번에는 plt.plot 함수를 사용했던 선 그래프에서 그래프 위에 숫자를 새긴 예시입니다.
plt.plot 함수로 그린 선 그래프의 경우는 객체의 method가 다르게 정의되어 있어(get_height 함수를 지원하지 않습니다.)
y값을 직접 가져와 for 문을 순회하면서 텍스트를 넣어주는 것이 좋습니다.
역시 text의 다른 요소들은 바 그래프의 예시와 같이 다양하게 지정해줄 수 있습니다.
이 외 글자 색이나 폰트 등 plt.text 함수에서 지원하는 다양한 특징은 모두 적용 가능하답니다!
이상으로 matplotlib에서 그래프 위에 그래프 값 혹은 원하는 숫자/문자를 새기는 간단한 방법에대해서 다루어 보았습니다.
'Python > Matplotlib' 카테고리의 다른 글
[Matplotlib] plt로 파이썬 3D (3차원) 그래프 그리는 방법 (0) | 2021.11.18 |
---|---|
[Matplotlib] plt 축 제목, 차트 제목 설정 함수 - xlabel, ylabel, title (+ 한글 깨짐 해결 추가) (0) | 2021.11.10 |
[Matplotlib] 코랩 한글 깨짐 해결법 (Colab plt 그래프 한글 적용) (0) | 2021.11.09 |