본문 바로가기
Error

pandas 한글 폰트 적용 에러 해결하기/ 시각화 폰트 설정법

by hi-rachel 2022. 11. 3.
🙀 파이썬으로 시작하는 데이터 사이언스 '3.3 결측치 다루기'를 듣던 중 그래프를 그리는데 한글 폰트가 표시가 안된다.
여러 방법 시도하다 나눔 폰트를 설치하고 해결했는데 같이 해보자!
- Google Colab 사용

 

++ 이후 계속 한글 폰트 적용 에러를 겪은 점 (11.25 내용 추가)

!pip install koreanize-matplotlib

import matplotlib.pyplot as plt
import koreanize_matplotlib

밑에 써놓은 직접 나눔 폰트를 설치하는 방법과 똑같이 나눔 폰트를 사용하는 방법.

위 코드가 한글 설정하는데 제일 간단한 코드이다.

참고 : https://github.com/ychoi-kr/koreanize-matplotlib

 

이렇게 설정하고도 데이터 시각화하면서 계속 일부가 한글 표시가 안 되는 문제가 있었는데 결론적으로는 한글 폰트 설정에 문제가 있는 게 아니라 코드가 잘못되어서 안보였던 문제였다. 제일 중요한 건 설치 후 런타임 다시 시작해보기! 너무 많이 시도해봤다면 밑에 코드를 이용해 캐시를 삭제해주고 재설정해주는 것도 방법이 될 수 있다.

# 홈 디렉토리 matplotlib 캐시 파일 삭제
$ rm -rf ~/.cache/matplotlib

import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "NanumGothic"

참고 : https://dasom.net/108

 

그런데도 문제 해결이 안 된다면 한글 폰트 설정 문제보다 잘못된 코드를 짰을 수도 있다.

 

판다스 한글 폰트 안 보이는 문제 해결 요약

1. 제일 간단한 방법으로 한글 폰트 설정 추천
2. 안된다면 설치 후 런타임 다시 시작하기
3. 2도 안된다면 캐시 파일 삭제 후 다시 해보기
4. 아무 방법도 안된다면 코드가 잘못됐을 가능성이 높으니 코드 수정하기

 

+) 시각화 폰트 추가 설정

from IPython.display import set_matplotlib_formats
# 폰트가 선명하게 보이기 위해
set_matplotlib_formats('retina')

# 그래프가 노트북 안에 보이게 하기 위해
%matplotlib inline

위 코드는 상단에 항상 입력해주는게 좋다.

 


 

(koreanize_matplotlib을 몰랐을 때 설정 방법)

문제

한글 폰트가 네모로 표시되고 보이지 않는다.

 

해결 방법
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

1. 나눔 폰트 설치 후 런타임 재시작하기 (상단 메뉴 런타임 → 런타임 다시 시작)

 

import matplotlib.pyplot as plt
plt.rc('font', family='NanumBarunGothic')
plt.rc('axes', unicode_minus=False)

# 그래프가 노트북 안에 보이게 하기 위해
%matplotlib inline

from IPython.display import set_matplotlib_formats
# 폰트가 선명하게 보이기 위해 - 그래프에 retina display 적용
%config InlineBackend.figure_format = 'retina'
# retina 대신 svg 등의 설정을 할 수도 있으며 
# 디스플레이(모니터)가 retina를 지원해야만 선명한 차이를 볼 수 있습니다.

2. 위 코드를 그대로 작성해준다.

(폰트 요소 외 나머지는 위 주석 설명처럼 그래프를 잘 보이게 하기 위해 공통적으로 들어간다.)

 

[]가 아니라 이제 잘 보이는 한글!

 

+) rot로 옵션을 지정해주면 글자의 회전 각도를 설정할 수 있다.

 

보기 좋게 만들기

글자가 겹쳐 잘 안 보이는 문제도 해결해보자!

1. barh()을 활용 세로 막대형 그래프로 만들기(선택 사항)

 

2. 적절한 figsize(가로길이, 세로 길이)를 설정해주어 보기 좋게 만든다.

글자 겹침 문제 해결! 🥳

 

시도했지만 안 먹힌 방법
import matplotlib.pyplot as plt
# Window 의 한글 폰트 설정
plt.rc('font',family='Malgun Gothic')
# Mac 의 한글 폰트 설정
plt.rc('font', family='AppleGothic')

plt.rc('axes', unicode_minus=False)

 


 

import platform
if platform.system() == 'Darwin': #맥
        plt.rc('font', family='AppleGothic') 
elif platform.system() == 'Windows': #윈도우
        plt.rc('font', family='Malgun Gothic') 
elif platform.system() == 'Linux': #리눅스 (구글 콜랩)
        #!wget "<https://www.wfonts.com/download/data/2016/06/13/malgun-gothic/malgun.ttf>"
        #!mv malgun.ttf /usr/share/fonts/truetype/
        #import matplotlib.font_manager as fm 
        #fm._rebuild() 
        plt.rc('font', family='Malgun Gothic') 
plt.rcParams['axes.unicode_minus'] = False #한글 폰트 사용시 마이너스 폰트 깨짐 해결

등등 해봤지만 변화 x

 

 

참고 강의

파이썬으로 시작하는 데이터 사이언스

 

파이썬으로 시작하는 데이터 사이언스

부스트코스 무료 강의

www.boostcourse.org

 

 

현재 부스트코스에서 진행하는 'Data Science 코칭 스터디'에 참가하며 이 강의를 수강하고 있다.
원래 부스트코스에서 여러 강의를 수강하고 있었지만 스터디에 참여하며 강의를 수강하니 +미션도 수행하고 코치님의 피드백도 받으며 더 성장할 수 있다. 코칭 스터디 기회가 또 있다면 무료로 코칭도 받을 수 있으니 추천한다!
사전 강좌로는 '모두를 위한 데이터 사이언스'를 수강하고 현재 강의를 수강하고 있는데 처음 입문하는 Data Science였지만 점점 배울수록 재밌다 😎 Python 실력도 늘릴 수 있다!