개발학습일지

[AWS] EC2 리눅스 스트림릿 대시보드, 차트에 한글 출력하기 본문

AWS

[AWS] EC2 리눅스 스트림릿 대시보드, 차트에 한글 출력하기

처카푸 2024. 5. 11. 01:45

EC2 리눅스 스트림릿 대시보드, 차트에 한글 출력하는 방법

 

1. 한글 폰트 설정하기 자세한 설명은 전 포스팅으로 작성했다. https://msdev-st.tistory.com/99

- 설치 코드만 모아두기 _순서대로 하면 네이버 나눔폰트 설치 완료!

$ sudo yum install fontconfig

$ curl -o nanumfont.zip http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip

$ sudo unzip -d /usr/share/fonts/nanum nanumfont.zip

$ sudo fc-cache -f -v

$ fc-list

 

2. 파이썬 버전과 폰트 설치 위치, 캐시 정보가 담기 폴더 이름을 알아야한다.

- 파이썬 터미널 들어가기

$ python

 

-  파이썬 에디터 _ 폴더 경로 메모장에 적어두고 기억하기

matplotlib 버전확인 : >>> import matplotlib

                                          >>> print(matplotlib.__version__)
설치 폴더 경로 확인  : >>> print(matplotlib.__file__)

내 경로 -> /home/ec2-user/anaconda3/lib/python3.11/site-packages/matplotlib/__init__.py
캐시 폴더 경로 확인  : >>> print(matplotlib.get_cachedir())

내 경로 -> /home/ec2-user/.cache/matplotlib

 

- 에디터에서 나오기

ctrl + D

파이썬 에디터

 

3. matplotlib에 한글 폰트 추가하기

- 나의 설치 폴더 경로에 맞게 폰트를 복사한다

$ sudo cp -r /usr/share/fonts/truetype/nanum/Nanum* 아까 확인한 설치 폴더 위치+mpl-data/fonts/ttf/

내 설치 명령어 _폰트 폴더에 모든 파일 복사

$ sudo cp -r /usr/share/fonts/*  /home/ec2-user/anaconda3/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/

- matplotlib의 폰트 캐시를 삭제하여 새로 설치한 폰트를 업데이트 한다. _ 내 캐시 폴더 경로 입력

$ rm -rf /home/ec2-user/.cache/matplotlib/*

 

4. 한글 폰트 matplotlib 에 잘 있는지 확인하기

-  코드 입력 시 리스트가 보이면, 정상적으로 한글 폰트가 추가된 것이다.

- 파이썬 터미널 들어가기

$ python

 

- 파이썬 에디터

>>> import matplotlib

>>> import matplotlib.font_manager

폰트 전체 확인 : >>> [i.fname for i in matplotlib.font_manager.fontManager.ttflist]

나눔 폰트 설치 확인 : >>> [f.name for f in matplotlib.font_manager.fontManager.ttflist if 'Nanum' in f.name]

 

5. 스트림릿 대시보드 개발툴에서 matplotlib 의 출력 폰트를 한글 폰트로 지정

- 소스 코드를 파일 최상단에 배치하여 설치한 글씨체의 이름을 입력하면 된다.

- 소스 코드 설명 : 운영체제가 리눅스인 경우, matplotlib 의 폰트를 나눔고딕으로 변경한다.

# Streamlit File *.py
import platform
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
plt.rcParams['axes.unicode_minus'] = False
if platform.system() == 'Linux':
    rc('font', family='NanumGothic')

 

 

완료!! 서버에서 출력되는 matplotlib의 차트들을 보면 한글로 잘 나와있는 것을 확인할 수 있다!!