<문제상황>
UserWarning: Glyph 50640 (\N{HANGUL SYLLABLE E}) missing from current font.
Matplotlib에서 한글을 사용할 때 다음과 같은 경고와 함께 한글이 깨지는 현상 발생했습니다.
<최종 해결 방법>
그래프 요소별 폰트를 직접 지정했습니다.
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 폰트 경로 설정
font_path = r'C:\Windows\Fonts\NanumGothic.ttf'
font_prop = fm.FontProperties(fname=font_path)
# 그래프 그릴 때 각 요소에 폰트 직접 지정
plt.title('훈련 및 검증 정확도', fontproperties=font_prop)
plt.xlabel('에포크', fontproperties=font_prop)
plt.ylabel('정확도', fontproperties=font_prop)
plt.legend(prop=font_prop) # 범례에도 폰트 적용
<시도했던 방법들>
방법 1: rcParams로 'Malgun Gothic' 설정 (실패)
plt.rcParams['font.family'] = 'Malgun Gothic'
plt.rcParams['axes.unicode_minus'] = False
방법 2: font_manager로 맑은 고딕 설정 (실패)
from matplotlib import font_manager, rc
font_path = "C:/Windows/Fonts/malgun.ttf"
font_name = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family=font_name)
방법 3: 나눔고딕 폰트 설정 (실패)
font_path = 'C:\\Windows\\Fonts\\NanumGothic.ttf'
font_name = fm.FontProperties(fname=font_path).get_name()
plt.rc('font', family=font_name)
실패원인은 정확하게는 모르겠습니다. 혹시라도 아시는 분은 댓글 달아주시면 감사하겠습니다.