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 |
위 코드를 실행해보시면 다음과 같이 한글이 정상적으로 출력됨을 확인하실 수 있을 겁니다.
관련 글
[python] cv2.imread, cv2.imwrite 한글 경로 인식을 못하는 문제 해결 방법
[python] matlab과 비슷한 방식으로 plot 그리기, matplotlib.pyplot
[python] matplotlib.pyplot으로 만든 plot 그림 파일로 저장하기
본문 내 쿠팡 파트너스 링크로 물건을 구입하시면, 제게 약간의 수익이 발생해 더 좋은 글을 쓸 힘이 납니다.
'Dev > python' 카테고리의 다른 글
[python] 파일의 확장자를 알려주는 함수, os.path.splitext() (0) | 2021.04.02 |
---|---|
[flask] 구름 IDE의 항상 켜두기 기능을 이용해서 flask 웹 서버 구동하기 (0) | 2021.03.29 |
[flask] 색칠 공부 도안 만들어주는 사이트 제작 (18) | 2021.03.24 |
[python] 넘파이 배열에서 어떤 값의 위치를 알고 싶다면, np.where 함수 (0) | 2021.03.15 |
[python] 외장 웹캠을 사용할 때 cv2.VideoCapture(1)로 했는데 안되면? (4) | 2021.01.28 |
[ubuntu+python] 특정 사람의 얼굴만 검출하기(face_recognition+dlib+GPU) (9) | 2021.01.26 |
[ubuntu+python] 얼굴 인식하기 (face_recognition 라이브러리 설치부터 사용까지) (3) | 2021.01.19 |
[Anaconda+python] 아나콘다 스파이더에서 반복되는 변수명 한번에 다른 것으로 바꾸려면, Ctrl + R (2) | 2021.01.11 |