Python의 matplotlib에서 주석(Annotation)을 한글로 표기하기

matplotlib는 강력한 그래프 출력을 위한 라이브러리이고, 다양한 환경과 언어에서 지원됩니다. 그래프는 어떤 정보를 전달하기 위한 목적을 가지므로, 전달하고자 하는 내용을 효과적으로 표기할 수 있어야 하는데요. matplotlib에서는 텍스트나 화살표와 같은 지시선 등을 그래프 상에 표기할 수 있습니다.

아래의 코드는 그래프 위에 일반적인 텍스트와 지시선을 표기하는 파이썬의 코드입니다.

import matplotlib.pyplot as plt

plt.tight_layout()
plt.axis([0,100,0,100])
plt.plot(20, 20, "bs")
plt.plot(50, 50, "bs")
plt.plot(80, 80, "bs")


plt.annotate('중앙값', xy=(50, 50), xytext=(50,20),
            fontsize=14, ha='center',
            arrowprops=dict(facecolor='black', width=1, shrink=0.1, headwidth=10))

plt.text(25, 80, '상자 속에 글자', fontsize=24, bbox=dict(boxstyle='square', color='lightgray'))

plt.show()

결과는 다음과 같습니다.

파이썬에서 matplotlib에서 사용하는 기본 폰트가 영문이므로, 아래처럼 원하는 한글 폰트를 직접 지정하여 한글을 표기할 수 있습니다. 아래의 코드는 그래프를 출력하기 이전인 위의 코드에서 2번줄에 추가하면 됩니다.

from matplotlib import font_manager

font_fname = 'C:/Users/Dip2K/AppData/Local/Microsoft/Windows/Fonts/XOU_XWA.ttf'
font_family = font_manager.FontProperties(fname=font_fname).get_name()
print(font_family)
plt.rcParams["font.family"] = font_family

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다