Matplotlib 한글 폰트 추가 (Mac)
Page content
개요
- Mac 유저를 위해 한글 폰트 추가하는 방법을 설명한다.
- 기본 코드는 Windows에서도 동작한다.
- 폰트 추가 방법은 생략한다.
한글 폰트 깨진 시각화
- 간단하게
깨진 한글
이 들어간 시각화를 구현한다.
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
import matplotlib as mpl
plt.plot([1, 2, 3, 4, 5])
plt.title("테스트")
plt.show()
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:238: RuntimeWarning: Glyph 53580 missing from current font.
font.set_text(s, 0.0, flags=flags)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:238: RuntimeWarning: Glyph 49828 missing from current font.
font.set_text(s, 0.0, flags=flags)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:238: RuntimeWarning: Glyph 53944 missing from current font.
font.set_text(s, 0.0, flags=flags)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:201: RuntimeWarning: Glyph 53580 missing from current font.
font.set_text(s, 0, flags=flags)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:201: RuntimeWarning: Glyph 49828 missing from current font.
font.set_text(s, 0, flags=flags)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:201: RuntimeWarning: Glyph 53944 missing from current font.
font.set_text(s, 0, flags=flags)
추가할 한글 폰트 확인
- 반복문을 사용하여 Nanum 폰트 코드가 있는지를 확인하였다.
- 이 때, if 조건문에 필자는 경로로 지정했는데, 이 부분은 독자들과 조금 다를 수 있으니 유의한다.
count = 0
와 관련된 코드는 삭제해도 상관없다.- 필자는 결괏값이 무한정 길어지는 방지하기 위해 적용했을 뿐이다.
count = 0
for font in fm.fontManager.ttflist:
# print(font.fname)
count += 1
if '/Users/evan/Library/Fonts/Nanum' in font.fname and count <= 100:
print(count, font.name, font.fname)
61 NanumSquareRound /Users/evan/Library/Fonts/NanumSquareRoundB.ttf
65 NanumMyeongjo /Users/evan/Library/Fonts/NanumMyeongjo.ttf
75 NanumBarunGothic /Users/evan/Library/Fonts/NanumBarunGothicLight.ttf
86 NanumGothic /Users/evan/Library/Fonts/NanumGothicExtraBold.ttf
87 NanumSquareRound /Users/evan/Library/Fonts/NanumSquareRoundEB.ttf
93 NanumSquare /Users/evan/Library/Fonts/NanumSquareLight.ttf
한글 텍스트 추가
- 이제 해당 경로를 불러와서 아래와 같이 코드를 추가한다.
- 그리고 변경된 텍스트를 확인해본다.
# NanumSquareRound /Users/evan/Library/Fonts/NanumSquareRoundEB.ttf
fontpath = '/Users/evan/Library/Fonts/NanumMyeongjo.ttf'
font = fm.FontProperties(fname=fontpath, size = 24)
plt.rc('font', family='NanumMyeongjo')
plt.rcParams["figure.figsize"] = (10, 5)
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.color'] = 'r'
plt.rcParams['axes.grid'] = True
mpl.font_manager._rebuild()
fm._rebuild()
plt.plot([1, 2, 3, 4, 5])
plt.title("테스트", fontproperties=font)
plt.show()
강의 홍보
- 취준생을 위한 강의를 제작하였습니다.
- 본 블로그를 통해서 강의를 수강하신 분은 게시글 제목과 링크를 수강하여 인프런 메시지를 통해 보내주시기를 바랍니다.
스타벅스 아이스 아메리카노를 선물
로 보내드리겠습니다.
- [비전공자 대환영] 제로베이스도 쉽게 입문하는 파이썬 데이터 분석 - 캐글입문기