2022-07-02 23:39:35

안녕하세요. 비스카이비전입니다. 오늘은 리눅스 우분투 운영체제에서 matplotlib로 그래프를 그릴 때 한글 깨짐 현상에 대한 해법에 대해 알아보도록 하겠습니다. 윈도우 PC에서의 matplotlib 한글 깨짐 문제 해결법은 링크 글을 확인하세요. 

 

우분투 matplotlib 한글 깨짐 해결법 

1) 우선 한글 폰트를 우분투에 설치해야 합니다. 네이버가 개발해서 배포한 나눔 폰트를 설치하겠습니다. 우분투 터미널에 다음과 같은 명령어를 입력해주세요. *를 붙인 이유는 fonts-nanum으로 시작하는 모든 폰트를 설치하기 위함입니다. 

 

sudo apt-get install fonts-nanum*

 

2) 그 다음에는 fc-cache 명령어를 활용하여 폰트 캐시(cache)를 갱신해줍니다. 참고로 fc는 fontconfig의 약자입니다. 

 

sudo fc-cache -fv

 

-f 옵션을 붙이면 캐시를 강제로 갱신해주고, -v 옵션을 붙이면 상태 정보를 보여줍니다. 

 

3) 나눔 폰트가 잘 설치되었는지 확인하기 위해 fc-list 명령어로 폰트 리스트를 출력합니다. 

 

sudo fc-list

 

나눔이 들어간 폰트가 여러 개 있으면 제대로 설치된 거라 생각하셔도 좋습니다. 

 

 

4) 그 다음에는 matplotlib 라이브러리의 캐시를 삭제합니다. 

 

rm -rf ~/.cache/matplotlib/*

 

5) 이제 파이썬 스크립트 상단에 폰트 설정 코드를 넣어줍니다.

 

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

 

6) 한글 깨짐 문제가 해결되었는지 그래프를 그려 확인해봅니다. 

 

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = 'NanumGothic'

plt.plot([-4, -3, -2, -1, 0, 1, 2, 3, 4], [12, 32, -4, 0, 5, 2, 19, 9, 3])
plt.xlabel('x축')
plt.ylabel('y축')
plt.title('제목')
plt.savefig('test.png')

 

 

한글은 깨짐없이 제대로 표출이 되었는데 마이너스 부호가 깨진 것을 확인하실 수 있습니다.

 

7) 파이썬 스크립트 상단에 마이너스 부호 관련 코드를 추가합니다.

 

import matplotlib.pyplot as plt
import matplotlib as mpl

plt.rcParams['font.family'] = 'NanumGothic'
mpl.rcParams['axes.unicode_minus'] = False

 

 

이제 마이너스 부호도 제대로 표출됩니다.

 

관련 글

- [linux] rm -rf 명령어는 정말 조심히 사용해야 합니다  

- [python] matplotlib로 플롯 그릴 때 한글 깨짐 문제 해결 방법 (윈도우)