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 |
Tags
- 코딩테스트
- Join
- 프로그래머스
- programmers
- 알고리즘스터디
- pandas
- String Method
- 알고리즘 스터디
- Algorithm
- 알고리즘
- 파이썬
- NumPy
- dataframe
- aws jupyter notebook
- queue
- 가상환경
- 정보처리기사 c언어
- openCV
- 자료구조
- Selenium
- 데이터시각화
- Stack
- MySQL
- 선그래프
- 노마드코딩
- python
- type hint
- 백준
- javascript
- Matplotlib
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[Matplotlib] Google Colab 한글 깨짐 (최후의 해결책) 본문
이 포스팅을 찾아 들어왔다면 이미 여러 방법들을 많이 시도해 봤을 거라 생각한다. 나 역시 검색을 꽤 오래 해봤고, 여러 코드들을 실행해 봤다.
특정 폰트를 지정해 주는 방법이 몇몇 있었는데 대표적인 해결 코드는 아래와 같았다.
from matplotlib import font_manager, rc
font_path = "/content/drive/MyDrive/ Encore Prac/malgun.ttf" # 폰트파일의 위치
mg = font_manager.FontProperties(fname=font_path)
font_name = mg.get_name()
rc('font', family=font_name)
!apt-get update -qq
!apt-get install fonts-nanum* -qq
import matplotlib.font_manager as fm
import warnings
warnings.filterwarnings(action='ignore')
path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf' # 폰트 위치
font_name = fm.FontProperties(fname=path, size=10).get_name() # 기본 폰트 사이즈 : 10
plt.rc('font', family=font_name)
fm._rebuild()
plt.rc('font', family='Malgun Gothic')
plt.rcParams['axes.unicode_minus'] = False
그러나 그 어떤 셋팅도 내 Colab 환경을 변화시키지 못했다.
내가 찾은 최후의 해결책은 바로 함수 안에 속성으로 폰트를 일일히 지정해 주는 것이었다.
from matplotlib import font_manager, rc
font_path = "/content/drive/MyDrive/ Encore Prac/malgun.ttf" # 폰트파일의 위치
mg = font_manager.FontProperties(fname=font_path)
먼저 이 코드를 실행해 mg 변수에 특정 폰트를 저장해 준다.
그리고 fontpropertis=mg 라는 속성을 한글이 들어가는 함수 안에 집어 넣어 준다. fontsize 속성을 통해 글자 크기를 조정할 수도 있다.
plt.figure(figsize=(14,5)) #가로 사이즈 늘리기
plt.style.use('seaborn-colorblind') #스타일 서식 지정
plt.plot(sr_one.index, sr_one.values)
plt.title('서울 -> 경기 인구 이동' ',fontproperties=mg, fontsize=20) #제목 지정, 폰트사이즈 설정
plt.xlabel('기간',fontproperties=mg, fontsize=15) #x축 지정
plt.ylabel('이동 인구수', fontproperties=mg, fontsize=15) #y축 지정
plt.xticks(rotation=70) #축 70도 회전
plt.show()
이제 이렇게 잘 출력되는 것을 볼 수 있다.
일일히 폰트사이즈를 설정하는 게 귀찮다면 이렇게 사이즈마다 따로 변수를 생성해서 사용할 수 있다.
mg_30 = font_manager.FontProperties(fname='/content/drive/MyDrive/ Encore Prac/malgun.ttf', size=30)
mg_20 = font_manager.FontProperties(fname='/content/drive/MyDrive/ Encore Prac/malgun.ttf', size=20)
mg_15 = font_manager.FontProperties(fname='/content/drive/MyDrive/ Encore Prac/malgun.ttf', size=15)
mg_10 = font_manager.FontProperties(fname='/content/drive/MyDrive/ Encore Prac/malgun.ttf', size=10)
그러면 조금 더 짧고 간단하게 폰트 지정이 가능하다.
plt.title('서울 -> 경기 인구 이동' ',fontproperties=mg, fontsize=20)
plt.title('서울 -> 경기 인구 이동' ',fontproperties=mg_20)
또 한가지 주의해야 할 점은 범례에 사용되는 폰트 속성은 나머지와 좀 다르다.
plt.legend(['서울->경기'],loc='best',prop=mg_20)
이렇게 fontproperties 대신에 prop 라고 속성을 바꿔줘야 무사히 작동한다.
사실 이 방법은 너무너무 귀찮고 손이 많이 가고 코드도 길어지는 방법이라 좀 슬프긴 하다.
추후에라도 내 개발 환경에 잘 적용되는 방법을 꼭 찾고 싶다.
혹시라도 해결하신 분이 있다면 댓글을 꼭 달아주길.....플리즈..
'Python > 데이터 시각화' 카테고리의 다른 글
[Matplotlib] 다양한 그래프 그리기(면적그래프, 막대그래프, 보조축 활용) (0) | 2022.10.01 |
---|---|
[Matplotlib] 그래프 여러개 그리기(화면 분할/그래프 분할) (0) | 2022.10.01 |
[Matplotlib] 그래프 주석 달기 & 마커 지정 (0) | 2022.09.30 |
[Matplotlib] 그래프 스타일 지정 (그래프 디자인 변경) (0) | 2022.09.30 |
[Matplotlib/Pandas] 선 그래프 그리기 (+데이터 불러오기 및 처리하기) (0) | 2022.09.29 |