본문 바로가기
DataScience/참고자료

구글 코랩(Colab) seaborn, matplotlib 한글 폰트 깨짐 현상 해결(2024.01월 버전)

by 올커 2024. 1. 25.

구글 코랩 한글 폰트 깨짐 현상 해결 (seaborn(sns), matplotlib.pyplot(plt))_2024.01


구글 코랩으로 데이터 분석 시각화를 하다 보면,

matplotlib을 사용하는데, 데이터에 따라 한글로 된 속성명이 많아서

그래프 출력시 이를 읽어내지 못해서 '□□□' 등과 같이 폰트가 깨지는 현상이 발생한다.

 

먼저 구글링을 한 결과, 압도적인 다수의 포스트에서 아래와 같은 코드를 사용해서 해결한다고 되어 있다.

(챗GPT에 문의해도 유사한 답변을 받았다.)

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

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

 

하지만 이상하게도 현상은 고쳐지지 않았다. (※ 아래 그림 참고)

 

 


코드를 부여잡고 확인, 수정을 거듭한 결과 아래와 같은 코드를 통해 해결할 수 있었다.

 

# 폰트 설치
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
!fc-list :lang=ko

 

 

import matplotlib.font_manager as fm

fe = fm.FontEntry(
    fname=r'/usr/share/fonts/truetype/nanum/NanumGothic.ttf', # ttf 파일이 저장되어 있는 경로
    name='NanumGothic')                        # 이 폰트의 원하는 이름 설정
fm.fontManager.ttflist.insert(0, fe)              # Matplotlib에 폰트 추가

plt.rcParams.update({'font.size': 18, 'font.family': 'NanumGothic'}) # 폰트 설정

# 가능한 font list 확인
f = [f.name for f in fm.fontManager.ttflist]
print(f)

plt.rcParams['font.family'] = 'NanumGothic'
plt.rcParams['font.sans-serif'] = ['/usr/share/fonts/truetype/nanum/NanumGothic.ttf']
plt.rcParams['axes.unicode_minus'] = False

 

위의 코드에는 필자가 확인을 위해 넣었던 불필요한 코드도 있으나,

추후 참고 목적으로 지우지 않았다.

 

반응형

댓글