코딩재개발 RSS 태그 관리 글쓰기 방명록
2021-03-08 22:47:37

matplotlib는 대표적인 데이터 시각화를 위한 파이썬 라이브러리입니다. 특히 pandas나 numpy 패키지를 자주 사용하시는 분들은 아주 유용하게 사용할 수 있는 시각화 라이브러리입니다. 오늘은 한국인이 matplotlib를 쓰다 보면 필연적으로 만나게 될 에러에 대해서 다루도록 하겠습니다. matplotlib를 이용해서 플롯(plot)을 그릴 때, 제목, x라벨, y라벨 등에 영어가 아닌 한글을 사용하면, 한글이 제대로 표현되지 않고 깨집니다. 

 

 

 

1
2
3
4
5
6
7
8
import matplotlib.pyplot as plt
 
plt.scatter([012345], [012345])
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([012345], [012345])
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 그림 파일로 저장하기   

 

 

본문 내 쿠팡 파트너스 링크로 물건을 구입하시면, 제게 약간의 수익이 발생해 더 좋은 글을 쓸 힘이 납니다.

글을 읽던 중에 궁금했던 부분은 질문해주세요.
칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.
최대한 답변 드리도록 노력하겠습니다.
욕설과 광고를 담은 댓글은 가차없이 삭제합니다.
비밀글