Python to AI

Python - Matplotlib 한글폰트 커스텀컨피그

최 수빈 2024. 12. 10. 18:40

 
Matplotlib의 기본 설정 폰트 Sans-serif에 한글이 포함돼있지 않아서 matplotlib뿐만 아니라 얘를 기반으로 하는 라이브러리들을 사용할 때 한글을 지원하는 폰트를 따로 지정해주지 않으면 깨져있는 네모네모를 보며 살아야된다. 뭔 데이터인지 알 수가 없다.
근데 또 매번 폰트 지정해주기는 귀찮다. 그렇다고 데이터분석을 때려칠까. ? ㅇ제일 좋은 방법임. 하지만 하고는 싶은데 귀찮은 경우를 위해 (물론 코드 외워버리기, 체화하기, 구글링하기, 메모장에 코드 짱박아놓기, ChatGPT활용하기, 키보드에 단축키로 메크로 설정.. 등등 다양한 방법이 있지만 다 귀찮아서- 나는 이제껏.. 내 노트북 안쓰고 intel에서 제공해주는 컴퓨터 돌려서 걍 바탕화면에 코드조각 늘어놓고 썼다.......ㅋ지금은 그럴 수 없다. ㅠㅠ) Matplotlib의 설정 파일을 바꿔주기로 했다. 나는 가상환경에서 실행했지만서도 default파일을 건드리는건 좀 쫄리기 때문에 .config폴더를 파고 원본을 복붙해서 넣어주고 내가 원하는대로 커스터마이징 후 rc파일만 여기 참조하라고 환경변수를 설정해주는 식으로 가기로 했다.
 
 
먼저 원본 matplotlibrc파일 경로를 찾으려

print(matplotlib.matplotlib_fname())

돌려봄
 
원본 경로는 대충 이런스타일
opt/anaconda3/envs/sparta/lib/python3.12/site-packages/matplotlib/mpl-data
mpl-data폴더 안에 있었다.
 
matplotlibrc파일 찾아서 통으로 복사해주고 
가상환경 폴더(sparta)로 나온다.
거기다가 일단 .config폴더 생성.
또 거기에 matplotlib폴더 생성.
거기 안에 복사 해놨던 파일 붙여넣었다. 
복사한 파일 열어줌 
ctrl+F 해서 FONT섹션 찾아주고
젤 아래에 
 
font.family: AppleGothic  #Korean
axes.unicode_minus: False  # minus error
 
넣어줌. 주석은 대충 내가 알아볼 수 있게 씀
 
 
 
그리고 원본파일말고 내가 만든파일 먼저 적용해주소.라고 환경 변수 설정을 해야됨

mkdir -p /Users/어쩌고/opt/anaconda3/envs/sparta/etc/conda/activate.d

라고일단 디렉토리 만들어준다.
 
 
디렉토리 안에 환경 변수 설정 스크립트 생성ㄱ

touch /Users/어쩌고/opt/anaconda3/envs/sparta/etc/conda/activate.d/env_vars.sh

 
스크립트 파일 연다

vim /Users/어쩌고/opt/anaconda3/envs/sparta/etc/conda/activate.d/env_vars.sh

 
스트립트에

export MPLCONFIGDIR=/Users/choisubin/opt/anaconda3/envs/sparta/.config/matplotlib

적는다.
 
저장 후 종료
esc눌러서 command모드로 빠져나오고, :wq차례대로 누르셈
 
conda deactivate하고 conda activate 가상환경이름(나는 sparta)
해서 가상환경 재활성화 해준다.
 

echo $MPLCONFIGDIR

 
bash 입력해서 내가 만든 .config경로와 matplotlibrc파일이 있는 곳이 잘 나오면 여기까지 성공
 
 

++가상환경 안에 jupyter notebook 설치돼있는지 확인해라.

pip show notebook

 
안돼있으면 설치해라.

pip install notebook ipykernel

 
가상환경을 Jupyter Kernel에 등록해라

python -m ipykernel install --user --name=내부식별이름 display-name "Jupyter Notebook에서 표시될 이름"

 
 
matplotlib캐시초기화해야하는 경우가 있을 수도 있을 것 같음 나는 괜찮았음