- 초기 환경설정
matplotlib 한글처리
matplotlib에 설정되있는 폰트가 한글을 지원하지 않기 때문에 그래프의 한글이 깨져서 나온다.
import os
import pandas as pd
import numpy as np
폰트깨짐 없애기. for Mac
import matplotlib.pyplot as plt # matplotlib 설치시 혹은 터미널 시작시, 1번과 2번, 3번 명령어 입력으로 폰트깨짐 해결.(Mac 한정.)
from matplotlib import rc # 1번
rc('font', family='AppleGothic') # 2번
plt.rcParams['axes.unicode_minus'] = False # 3번
import matplotlib.pyplot as plt
plt.plot(range(-10,10))
plt.xlabel("X값")
plt.ylabel("Y값")
plt.title('matplotlib 예제')
plt.show()
설정방법
- 설정파일을 변경한다.
- 한번만 하면 된다.
- 프로그램상에서 변경한다.
- 프로그램이 로딩 될때마다 (노트북 파일이나 파이썬 스크립트 실행시마다) 코드를 실행해야 한다.
- 전체 설정에서 변경하고 싶은 것을 재설정한다.
OS에 설치된 폰트명 조회
import matplotlib as mpl
import matplotlib.font_manager as fm
폰트 cache 파일을 삭제 한다.
- cache 파일 조회
- 다음 실행 결과로 나온 디렉토리 안의 파일을 삭제한다.
print(mpl.get_cachedir())
/Users/seokminlee/.matplotlib
- 전체 폰트 조회
for f in fm.fontManager.ttflist:
print(f.name, f.fname) # 폰트이름, 폰트파일경로
- 원하는 폰트명 찾기
[(f.name,f.fname) for f in fm.fontManager.ttflist if 'TrueType' in f.name.lower()]
#mac : AppleGothic
# 설정시 폰트 이름을 사용
폰트등 환경 설정하기
설정파일 변경
- 한번만 하면 되므로 편리하다.
설정파일 경로찾기: matplotlib.matplotlib_fname()
matplotlib 관련 전역 설정들을 찾아 바꿔준다.
- 폰트 관련 설정
font.family:Malgun Gothic font.size:20 axes.titlesize:30 axes.labelsize:20 axes.unicode_minus:False xtick.labelsize:15 ytick.labelsize:15
상기 본인은 이와같이 설정. (Mac)
- 아래 나오는 Path(mpl-data) 까지 드래후 검색
- ‘matplotlibrc’ 파일 열기.
- ‘font.familly’ 찾은 후 AppleGothic 수정 후 앞에 주석 없애기.(Mac 한정)
- axes.unicode 검색후 값 ‘True’를 ‘False’로 수정.
- 저장
print(mpl.matplotlib_fname())
/Users/seokminlee/opt/anaconda3/envs/ml/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc
함수를 이용해 설정
matplotlib.rcParam['설정'] = 값
으로 변경
import matplotlib as mpl
from matplotlib import font_manager as fm
# 한글 폰트 설정
font_name = fm.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
# 폰트변경
mpl.rcParams["font.family"] = font_name
# 폰트 size변경
mpl.rcParams["font.size"] = 20
# x, y 축의 label 크기 변경
mpl.rcParams['axes.labelsize'] = 15
# x, y 축의 tick(눈금) label 크기 변경
mpl.rcParams['xtick.labelsize'] = 12
mpl.rcParams['ytick.labelsize'] = 12
# tick의 음수기호 '-' 가 깨지는 것 처리
mpl.rcParams['axes.unicode_minus'] = False # 반드시 하는 것 (깨지는거 방지)
import matplotlib.pyplot as plt
plt.plot(range(-5,6))
plt.xlabel("X값")
plt.ylabel("Y값")
plt.title('matplotlib 예제')
plt.show()
댓글남기기