Pandas (7) - 그래프 한글 글꼴 설정
그래프 한글폰트 상황
import numpy as np
# 경고 메시지 무시
import warnings
warnings.filterwarnings('ignore')
data = np.random.randint(-100, 100, 50).cumsum()
data
array([ 50, 39, 52, 142, 46, 48, 141, 189, 246, 197, 275, 351, 353,
281, 218, 156, 168, 222, 169, 180, 142, 140, 154, 166, 128, 193,
138, 138, 127, 127, 100, 178, 232, 256, 239, 212, 197, 228, 192,
291, 276, 203, 230, 168, 157, 231, 323, 414, 509, 501], dtype=int32)
import matplotlib.pyplot as plt
plt.plot(range(50), data, 'r')
plt.title('시간별 가격 추이')
plt.ylabel('주식가격')
plt.xlabel('시간(분)')
Text(0.5, 0, '시간(분)')
맑은고딕(Malgun Gothic)으로 설정
“C:\Windows\Fonts\malgun.ttf”
1. FontProperties 사용
import matplotlib.font_manager as fm
path = "C:\\Windows\\Fonts\\malgun.ttf"
fontprop = fm.FontProperties(fname=path, size=16) # 파일 경로가 필요, 해당 설정을 지정한 곳만 한글가능
plt.plot(range(50), data, 'r')
plt.title('시간별 가격 추이', fontproperties=fontprop)
plt.ylabel('주식가격')
plt.xlabel('시간(분)')
Text(0.5, 0, '시간(분)')
2. rcParams로 전역글꼴 설정
세션단위로 설정필요(쓸 때 선언을 해줘야 함)
plt.rcParams['font.size']
10.0
plt.rcParams['font.family']
['sans-serif']
plt.rcParams['font.family'] = 'Malgun Gothic'
plt.plot(range(50), data, 'r')
plt.title('시간별 가격 추이')
plt.ylabel('주식가격')
plt.xlabel('시간(분)')
Text(0.5, 0, '시간(분)')
import matplotlib as mpl
mpl.matplotlib_fname()
'C:\\Users\\user\\anaconda3\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'
# 시스템 폰트 확인
# fm.findSystemFonts()
[(f.fname, f.name) for f in fm.fontManager.ttflist if 'Malgun' in f.name]
[('C:\\Windows\\Fonts\\malgunsl.ttf', 'Malgun Gothic'),
('C:\\Windows\\Fonts\\malgun.ttf', 'Malgun Gothic'),
('C:\\Windows\\Fonts\\malgunbd.ttf', 'Malgun Gothic')]
[(f.fname, f.name) for f in fm.fontManager.ttflist if 'Nanum' in f.name]
[('C:\\Users\\user\\AppData\\Local\\Microsoft\\Windows\\Fonts\\NanumBrush.ttf',
'Nanum Brush Script'),
('C:\\Windows\\Fonts\\\x7f\x7f\x7f\x7fEXTRABOLD.TTF', 'NanumGothic'),
('C:\\Windows\\Fonts\\\x7f\x7f\x7f\x7fBOLD.TTF', 'NanumGothic'),
('C:\\Windows\\Fonts\\\x7f\x7f\x7f\x7f.TTF', 'NanumGothic'),
('C:\\Users\\user\\AppData\\Local\\Microsoft\\Windows\\Fonts\\NanumPen.ttf',
'Nanum Pen Script')]
추가폰트가 인식이 되지 않는다면 C:/User/사용자/.matplotlib 폴더를 삭제하여 갱신해서 새로 생성하도록 함
# 해당 세션의 폰트 설정
plt.rcParams['font.family'] = 'Nanum Pen Script'
# 그래프에서 마이너스 폰트 깨지는 문제에 대한 조치
plt.rcParams['axes.unicode_minus'] = False
plt.plot(range(50), data, 'r')
plt.title('시간별 가격 추이')
plt.ylabel('주식가격')
plt.xlabel('시간(분)')
Text(0.5, 0, '시간(분)')
3. 설정파일에 정의
mpl.matplotlib_fname()
'C:\\Users\\user\\anaconda3\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'
설정파일에서 수정
font.family: D2Coding
font.size: 14.0
Reference
- 이 포스트는 SeSAC 인공지능 자연어처리, 컴퓨터비전 기술을 활용한 응용 SW 개발자 양성 과정 - 심선조 강사님의 강의를 정리한 내용입니다.
댓글남기기