본문으로 바로가기

matplotlib 한글 문제 해결하기

category Theory/DataScience 2020. 7. 20. 08:00

이번에는 우리가 데이터 사이언스나 머신러닝을 공부하면서 많이 사용하는 Python의 그래프 그리는 툴인 matplotlib의 한글 문제를 이야기하겠습니다.

일단 먼저 matplitlib와 numpy를 불러보겠습니다~

그리고 간단하게 t를 0.부터 10까지 0.01간격으로 지정하고, sin과 cos을 numpy를 이용해서 그리라고 하고~, 타이틀을 "삼각함수"라고 지정했습니다

그랬는데 에러가 나네요.ㅠㅠ. font에 뭔가 문제가?

import matplotlib.pyplot as plt
%matplotlib inline

from matplotlib import font_manager, rc
plt.rcParams['axes.unicode_minus'] = False

f_path = "/Library/Fonts/Arial Unicode.ttf"
font_name = font_manager.FontProperties(fname=f_path).get_name()
rc('font', family=font_name)

네~ matplotlib의 폰트가 한글을 기본지원하지 않는 것이 디폴트로 잡혀있어서 그렇습니다. 그래서 한글이 지원되는 폰트를 따로 지정해주면 됩니다. 윈도우 유저들은 f_path자리를

f_path = "c:/Windows/Fonts/malgun.ttf"

이렇게 설정하면 됩니다.

그리고 다시 실행해보면 이렇게 한글이 잘 지원된다는 것을 알 수 있습니다. 그런데 매번 이렇게 코드를 작성하는 것이 조금 귀찮다면

import matplotlib.pyplot as plt
import platform
from matplotlib import font_manager, rc
plt.rcParams['axes.unicode_minus'] = False

if platform.system() == 'Darwin':
    f_path = "/Library/Fonts/Arial Unicode.ttf"
elif platform.system() == 'Windows':
    f_path = "c:/Windows/Fonts/malgun.ttf"

font_name = font_manager.FontProperties(fname=f_path).get_name()
rc('font', family=font_name)

print("Hangul font is set!")

hangul_font.py 파일을 하나 만들어서 위와 같이 해둡니다. 이번에는 platform 모듈의 system() 함수까지 이용해서 맥(Darwin)과 윈도우 모두에 통하도록 만들어 둡니다.

그리고, 내가 실행하고자 하는 Jupyter Notebook 파일과 같은 경로에 두고~

같은 경로에 둔거죠~^^

그리고 import 해버리면 됩니다~

그래도 역시 잘 되는군요^^ 요즘 데이터사이언스 부분은 제가 계속 그렇게 하듯 동영상으로도 올려둡니다.



댓글을 달아 주세요

  1. BlogIcon 북두협객 2020.07.20 11:17 신고

    파이썬이 프로그래밍 언어 가운데 요즘 가장 핫하군요
    단점 대비 장점이 많고 대중적이니 한동한 왕좌에 자리에 계속 머물것 같아요

  2. BlogIcon 모피우스 2020.07.20 13:03 신고

    역시나 어려운 용어들입니다. 그러나 관련 종사자는 도움이 되겠죠^^

    많이 습합니다. 건강유의하세요. 잠시 다녀갑니다.

  3. BlogIcon 드래곤포토 2020.07.20 16:32 신고

    즐거운 하루 되세요

  4. BlogIcon 핑구야 날자 2020.07.21 06:47 신고

    한글 문제를 해결할 수 있는 방법을 소개 해주셨군요 잘 보고 갑니다

  5. BlogIcon 가족바라기 2020.07.21 22:55 신고

    유용한 정보 감사합니다
    편안한 밤 되세요^^

  6. BlogIcon peterjun 2020.07.22 10:11 신고

    보는데 어렵다는 생각이 먼저 들었어요. ㅋ
    요즘 파이썬 공부를 좀 해볼까 ~ 생각을 하고 있네요.
    물론 머신러닝쪽은 아니고, 그저 심플한 크롤링 정도로 말이죠.
    매번 어렵다는 생각이 앞서서 못하게 되는 것 같아요. ㅠ

  7. BlogIcon 잉여토기 2020.07.28 16:31 신고

    삼각함수 그래프가 예쁜 곡선을 그리며 나왔네요.