도찐개찐
[Python] plot 한글 사용 본문
matplotlib는 대표적인 데이터 시각화를 위한 파이썬 라이브러리입니다. 특히 pandas나 numpy 패키지를 자주 사용하시는 분들은 아주 유용하게 사용할 수 있는 시각화 라이브러리입니다. 오늘은 한국인이 matplotlib를 쓰다 보면 필연적으로 만나게 될 에러에 대해서 다루도록 하겠습니다. matplotlib를 이용해서 플롯(plot)을 그릴 때, 제목, x라벨, y라벨 등에 영어가 아닌 한글을 사용하면, 한글이 제대로 표현되지 않고 깨집니다.
1
2
3
4
5
6
7
8
|
import matplotlib.pyplot as plt
plt.scatter([0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5])
plt.title('산점도')
plt.xlabel('변수1')
plt.ylabel('변수2')
plt.grid(True)
plt.show()
|
cs |
위 파이썬 코드를 실행하면, 다음과 같은 산점도(scatter plot)가 그려집니다.
한글 깨짐 문제
한글로 표현되었어야 할 "산점도", "변수"가 네모로 표현되었습니다.
matplotlib 한글 깨짐 문제 해결법
이런 경우에는 다음과 같이 조치해줘야 합니다. 사용하고자 하는 한글 폰트의 경로를 알려준 후 그 폰트로 텍스트가 쓰여지게 해야 합니다. 윈도우 PC에서 폰트는 C:\Windows\Fonts에 위치합니다. 그 중에서 원하는 폰트의 영문명을 뒤에 덧붙여줘서 폰트의 정확한 위치를 알려줍니다. 폰트 이름의 영문 버전은 속성을 확인해보시면 알 수 있습니다.
위 파이썬 코드를 다음과 같이 변경해주면 한글 깨짐 문제가 해결됩니다. 4번째 행부터 7번째 행까지 4줄의 코드가 추가되었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import matplotlib.pyplot as plt
# 한글 폰트 사용을 위해서 세팅
from matplotlib import font_manager, rc
font_path = "C:/Windows/Fonts/NGULIM.TTF"
font = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family=font)
plt.scatter([0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5])
plt.title('산점도')
plt.xlabel('변수1')
plt.ylabel('변수2')
plt.grid(True)
plt.show()
|
cs |
위 코드를 실행해보시면 다음과 같이 한글이 정상적으로 출력됨을 확인하실 수 있을 겁니다.
한글 깨짐 문제 해결!
728x90
'PYTHON > 데이터분석' 카테고리의 다른 글
[Python] 선형회귀 (2) | 2022.12.26 |
---|---|
인공지능 개념 (0) | 2022.12.26 |
[Python] folium(지도시각화) (0) | 2022.12.26 |
[Python] 스파크(spark) (0) | 2022.12.26 |
[Python] 판다스(pandas) (0) | 2022.12.26 |
Comments