Matplotlib은 한글 폰트를 지원하지 않는 문제가 있다.
그래프 출력시 한글 부분이 네모박스로 표시되면서 폰트가 깨지는 현상이 있다.
warning:matplotlib.font_manager:findfont: font family 'nanumgothic' not found.
[방법 1]
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 1. 폰트 경로 위치 / 나눔글꼴 경로 설정
font_path = 'C:/Windows/Fonts/NanumGothic.ttf'
# 폰트 이름 가져오기
font_name = fm.FontProperties(fname=font_path).get_name()
# 폰트 설정
plt.rc('font', family=font_name)
# 예제 그래프 그리기
plt.figure(figsize=(10,5))
plt.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
plt.title('라인 플롯')
plt.xlabel('x 라벨')
plt.ylabel('y 라벨')
plt.show()
[방법 2]
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 폰트 파일 등록
fe = fm.FontEntry(
fname='./NanumGothic.ttf',
name='NanumGothic')
# 폰트 매니저에 폰트 추가
fm.fontManager.ttflist.insert(0, fe)
# Matplotlib의 기본 폰트 변경
plt.rcParams['font.family'] = fe.name
# 그래프 그리기
plt.figure(figsize=(10, 5))
plt.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
plt.title('라인 플롯')
plt.xlabel('x 라벨')
plt.ylabel('y 라벨')
plt.show()
'방법 1'은 이전 공부할때 썻던 방법으로 아나콘다에서는 문제없이 실행되었으나 지금 Colab에서 에러가 발생해서 '방법 2' 를 찾아보았다.
FontEntry의 사용법과 설명
FontEntry는 폰트 파일을 matplotlib의 폰트 관리자에 등록하는 데 사용됩니다. 이 클래스는 폰트 파일과 폰트의 이름을 관리하는 데 필요한 정보를 제공합니다. 여기서 사용된 코드는 다음 단계를 포함합니다:
1. 폰트 파일 등록: FontEntry를 사용하여 NanumGothic.ttf 파일을 폰트 매니저에 등록합니다. 이때 fname은 폰트 파일의 경로를, name은 이 폰트를 참조할 때 사용할 이름을 지정합니다.
2. 폰트 매니저에 추가: fm.fontManager.ttflist.insert(0, fe)를 통해 등록된 폰트를 폰트 매니저의 폰트 리스트의 가장 앞에 추가합니다. 이렇게 함으로써 Matplotlib이 이 폰트를 우선적으로 사용하도록 합니다.
3. rcParams 설정 변경: plt.rcParams['font.family']를 통해 그래프에 사용할 기본 폰트를 fe.name (여기서는 'NanumGothic')으로 설정합니다.
'데이터 공부 > 파이썬 기초공부' 카테고리의 다른 글
Pandas 판다스 내용 정리 - ② 데이터 살펴보기 , 시각화 (0) | 2024.05.14 |
---|---|
Pandas 판다스 내용 정리 - ① 자료구조 및 입출력 (0) | 2024.05.13 |