파이썬으로 데이터를 시각화 한다면 한번쯤은 사용하게 되는 라이브러리가 Matplotlib 입니다. 만약 Seaborn, Geopandas와 같은 다른 시각화 라이브러리를 사용한다 하더라도, 그 기반은 Matplotlib인 경우가 많습니다.
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.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을 사용해 한글 폰트를 나타내야 할 때, 위 방법으로 멋진 시각화 하실 수 있길 바랍니다.
'인공지능 > 파이썬' 카테고리의 다른 글
파이썬으로 .csv 파일 읽기 (0) | 2023.02.08 |
---|---|
PyCharm에서 UnauthorizedAccess 오류 해결 방법 (0) | 2023.01.10 |
파이썬 vim 설정 (.vimrc) (0) | 2022.02.23 |
파이썬 판다스 Pandas 기초 | 그룹 연산 | 시계열 (0) | 2020.08.25 |
파이썬 기본 자료 처리 | ASCII (.csv .txt), Binary (.bin), MATLAB (.mat), NetCDF4 (.nc), HDF5 (.hdf5) 파일 읽고 저장하는 법 (0) | 2020.08.24 |