Matplotlib로 그린 막대 차트에서 각 막대(열) 위에 텍스트를 표시하려면 text() 메서드를 사용하면 됩니다. 이 메서드는 지정한 x, y 좌표에 원하는 문자열을 배치할 수 있어, 막대의 값이나 백분율 등을 막대 바로 위에 나타내는 데 매우 유용합니다.
구현 단계
x축 레이블, y축 값, 백분율(percentage) 데이터를 리스트로 준비합니다.
bar() 메서드를 사용해 막대 그래프를 생성합니다.
zip()으로 묶은 x, y, percentage 값을 순회하면서 각 막대 위에 텍스트를 배치합니다.
show() 메서드를 호출해 완성된 그래프를 화면에 출력합니다.
예제 코드
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = ['A', 'B', 'C', 'D', 'E']
y = [1, 3, 2, 0, 4]
percentage = [10, 30, 20, 0, 40]
ax = plt.bar(x, y)
for x, y, p in zip(x, y, percentage):
plt.text(x, y, p)
plt.show()
실행 결과

추가 팁: 텍스트 정렬 조정하기
텍스트 위치를 더 세밀하게 다듬고 싶다면 plt.text()에 ha(수평 정렬)와 va(수직 정렬) 옵션을 함께 사용해 보세요. 예를 들어 plt.text(x, y, p, ha='center', va='bottom')처럼 작성하면 텍스트가 각 막대의 상단 중앙에 깔끔하게 정렬되어 가독성이 크게 향상됩니다. 또한 fontsize, color 등의 인자를 추가하면 텍스트 스타일도 자유롭게 꾸밀 수 있습니다.