인공지능/파이썬

파이썬 Matplotlib 한글 폰트 설정 방법 (한글 깨짐 에러)

백관구 2023. 8. 1. 17:45
반응형

    파이썬으로 데이터를 시각화 한다면 한번쯤은 사용하게 되는 라이브러리가 Matplotlib 입니다. 만약 Seaborn, Geopandas와 같은 다른 시각화 라이브러리를 사용한다 하더라도, 그 기반은 Matplotlib인 경우가 많습니다.

 

Matplotlib — Visualization with Python

seaborn seaborn is a high level interface for drawing statistical graphics with Matplotlib. It aims to make visualization a central part of exploring and understanding complex datasets. statistical data visualization Cartopy Cartopy is a Python package des

matplotlib.org

 

    Matplotlib을 사용해 데이터를 시각화하다 보면, 예상치 못한 에러에 봉착하는 경우가 많은데요. 바로 그 중 대표적인 에러가 그림 안에 한글을 사용할 때 발생합니다 (코드 실행시 에러가 발생하지는 않지만 그림에 한글이 깨져서 나타나게 됩니다).

    다행히 "한글 깨짐" 에러 해결 방법은 간단합니다. 아래 예를 통해 어떻게 에러가 발생하고, 어떻게 해결할 수 있는지 살펴보겠습니다.

 


 

한글 깨짐 에러

    예를 들어, 서울특별시의 인구 분포를 확인하기 위해 아래와 같이 시각화 코드를 작성합니다. 이 때 코드 마지막 줄에 볼 수 있듯이, 그림에 "서울 인구 밀도"라는 한글 제목을 달아주기 위해 set_title() 메서드에 제목을 입력해 주었습니다.

import matplotlib.pyplot as plt

ax = population_grid.plot(
    figsize=(7, 7),
    column="population_density",
    cmap="Reds",
    scheme="quantiles",
    legend=True
)
ax.set_title("서울 인구 밀도")

Matplotlib 한글 깨짐 에러

 

    인구 밀도를 나타낸 그림은 잘 표현되었지만, 상단에 표시되어야 할 제목 "서울 인구 밀도" 대신 ㅁㅁ ㅁㅁ ㅁㅁ과 같이 제목이 잘못 표기된 것을 확인할 수 있습니다. 이러한 문제의 원인은 Matplotlib을 통해 그림을 그리는 과정에서 사용된 폰트가 한글을 제대로 인식하지 못했기 때문입니다.

    따라서, 문제 해결을 위해 한글 폰트를 알맞게 설정해주는 과정이 필요합니다. 그 방법은 다음과 같습니다.

 

반응형

 

★ 해결 방법

    우선, matplotlib.pyplot을 import 해줍니다. 그리고 plt.rc() 메서드를 사용해 시각화 작업시 사용할 폰트를 설정해주면 됩니다. 코드는 plt.rc("font", family="사용할 한글 폰트")로 작성하면 됩니다. 저는 아래 코드처럼 작성해 "맑은 고딕(Malgun Gothic)" 폰트를 사용하도록 하겠습니다.

import matplotlib.pyplot as plt

plt.rc("font", family="Malgun Gothic")

 

    위 코드를 실행한 후, 다시 동일한 시각화 코드를 실행시켜 보겠습니다.

ax = population_grid.plot(
    figsize=(7, 7),
    column="population_density",
    cmap="Reds",
    scheme="quantiles",
    legend=True
)
ax.set_title("서울 인구 밀도")

 

    의도한대로 "서울 인구 밀도"라는 한글 제목이 제대로 표현되는 것을 볼 수 있습니다. 여러분도 Matplotlib을 사용해 한글 폰트를 나타내야 할 때, 위 방법으로 멋진 시각화 하실 수 있길 바랍니다.

반응형