250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- API
- 오픈API
- OSMnx
- geopandas에러
- 인코등
- Folium
- matplotlib
- 공공데이터포털
- Python
- 라이엇api
- 파이썬
- covid
- covid19
- 마커클러스터
- 라이엇
- map
- pipwin
- kepler
- 에러
- 막대그래프
- 오류
- 시각화
- kepler.gl
- 코로나
- riotapi
- 지도
- geopandas설치
- geopnadas
- QGIS라벨링
- r
Archives
- Today
- Total
Nerdy
Matplotlib 한글 깨짐 현상 해결방법 본문
728x90
레이블과 제목에 한글을 넣게 되면 한글깨짐 현상이 발생한다. 이 문제를 해결하기 위해서는 한글깨짐 방지 세팅이 필요하다.
먼저 산점도 그래프를 만들어본다.
# 사용된 라이브러리 모듈
import numpy as np
import matplotlib.pyplot as plt
# 산점도 그래프 생성
np.random.seed(0)
n = 30
x = np.random.rand(n)
y = np.random.rand(n)
plt.scatter(x, y)
plt.title('test scatter')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True) # 격자 표시
plt.show()
# 결과
산점도 그래프 작성을 위한 파이썬 코드를 돌려보면 위의 이미지처럼 아주 잘 나온다.
하지만 xlabel, ylabel, 그리고 title에 영어 문자열이 아닌 한글 문자열을 넣으면 문제가 발생한다.
# 산점도 그래프 생성(한글 문자열 입력)
np.random.seed(0)
n = 30
x = np.random.rand(n)
y = np.random.rand(n)
plt.scatter(x, y)
plt.title('산점도 그래프')
plt.xlabel('엑스')
plt.ylabel('와이')
plt.grid(True) # 격자 표시
plt.show()
# 결과
# 에러 내용
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:749: UserWarning: Glyph 44536 (\N{HANGUL SYLLABLE GEU}) missing from current font.
func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:749: UserWarning: Glyph 47000 (\N{HANGUL SYLLABLE RAE}) missing from current font.
func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:749: UserWarning: Glyph 54532 (\N{HANGUL SYLLABLE PEU}) missing from current font.
func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:749: UserWarning: Glyph 50641 (\N{HANGUL SYLLABLE EG}) missing from current font.
func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:749: UserWarning: Glyph 49828 (\N{HANGUL SYLLABLE SEU}) missing from current font.
func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:749: UserWarning: Glyph 50752 (\N{HANGUL SYLLABLE WA}) missing from current font.
func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:749: UserWarning: Glyph 51060 (\N{HANGUL SYLLABLE I}) missing from current font.
func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:1705: UserWarning: Glyph 50641 (\N{HANGUL SYLLABLE EG}) missing from current font.
return self.func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:1705: UserWarning: Glyph 49828 (\N{HANGUL SYLLABLE SEU}) missing from current font.
return self.func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:1705: UserWarning: Glyph 50752 (\N{HANGUL SYLLABLE WA}) missing from current font.
return self.func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:1705: UserWarning: Glyph 51060 (\N{HANGUL SYLLABLE I}) missing from current font.
return self.func(*args)
C:\Users\tjoeun9\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py:1705: UserWarning: Glyph 49328 (\N{HANGUL SYLLABLE SAN}) missing from current font.
한글로 표현되어야 할 제목과 x, y 레이블이 빈 네모로 표현이 되었다. 이 문제를 해결하기 위해서는 코드에 사용할 한글 폰트의 경로를 넣어준 후 그 폰트가 텍스트로 쓰여지게 해야 한다.
이전에 올린 '젤렌스키 대통령 연설문 Wordcloud 만들기' 게시글에 폰트 정보를 확인하는 방법을 적어놨으니 확인해보면 된다.
https://whiplash-bd.tistory.com/32
간단하게 설명하면 윈도우 사용자 한에 'C:\Windows\Fonts' 경로를 들어간 뒤 자신이 사용하고자 할 폰트를 오른쪽 마우스 버튼을 클릭한 뒤 속성을 들어가면 사용할 폰트의 영문명을 얻을 수 있다.
사용할 폰트명을 찾았으면 아래 파이썬 코드처럼 넣어주면 된다.
from matplotlib import font_manager, rc # 폰트 세팅을 위한 모듈 추가
font_path = "C:/Windows/Fonts/malgun.ttf" # 사용할 폰트명 경로 삽입
font = font_manager.FontProperties(fname = font_path).get_name()
rc('font', family = font)
# 최종 결과
728x90