Matplotlib에서는 annotate() 함수를 활용하여 막대 그래프의 각 막대 위에 이모지(emoji)를 레이블로 배치할 수 있습니다. 아래 단계별 가이드와 예제 코드를 통해 쉽게 따라 해 보세요.
구현 단계
- 그림 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- 빈도수(freqs) 리스트와 이모지가 포함된 레이블(labels) 리스트를 생성합니다.
- figure() 메서드를 사용하여 새 figure를 생성하거나 기존 figure를 활성화합니다.
- bar() 메서드로 막대 그래프를 그립니다.
- annotate() 메서드를 사용하여 각 막대 위에 이모지를 레이블로 배치합니다.
- show() 메서드를 호출하여 그래프를 화면에 출력합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
freqs = [7, 8, 5, 3, 6]
labels = ['😊', '😲', '😂', '😃', '😛']
plt.figure()
p1 = plt.bar(np.arange(len(labels)), freqs)
for rect1, label in zip(p1, labels):
height = rect1.get_height()
plt.annotate(
label,
(rect1.get_x() + rect1.get_width()/2, height+.05),
ha="center",
va="bottom",
fontsize=30
)
plt.show()실행 결과
위 코드를 실행하면 각 막대의 상단 중앙에 해당하는 이모지가 폰트 크기 30으로 표시된 막대 그래프가 나타납니다. annotate()의 ha(수평 정렬)와 va(수직 정렬) 옵션을 조절하면 이모지의 위치를 세밀하게 다룰 수 있으며, fontsize 값을 변경해 원하는 크기로 조정할 수도 있습니다.