데이터/Plotting

[Matplotlib] 한글 폰트 사용하기.

Cho et al. 2023. 5. 2.

나는 윈도우 세팅에서 작업을 할 때, WSL 과 jupyter lab 에서 matplotlib, seaborn 을 가지고 주로 시각화를 진행한다.

Matplotlib 에서 폰트를 사용하려면 WSL(Ubuntu) 에 깔려 있어야 하는데, 

먼저 대표적인 한글 폰트인 "나눔고딕" 을 설치하는 방법과 우분투에 폰트를 업데이트하는 법을 소개한다.

sudo apt-get install fonts-nanum* # 폰트 설치
sudo fc-cache -fv # 캐시 제거
sudo fc-list | grep nanum # 폰트 설치 확인
rm -rf ~/.cache/matplotlib/* # matplotlib 캐시 제거

 

세팅이 끝났으면 본격적으로 그림을 그려보자.

 

import matplotlib.pyplot as plt
sns.set(font_scale = 1.5,font ='NanumGothic' )
plt.figure(figsize = (10,10))
# Data
values = [20, 20, 20, 20, 20, 20, 20, 1]
labels = ['집에 가고 싶은 마음', '집에 도착하고 싶은 마음', 
          '집으로 달려가고 싶은 마음', '연차 쓰고 싶은 마음',
          '좋은 카페를 가고 싶은 마음', '쉬고 싶은 마음',
          '아무 생각이 없는 마음', '회사에 있고 싶은 마음']
colors = ['#F5BCA9', '#BEBADA', '#FFFFB3', '#FB8072', '#8DD3C7', '#80B1D3', '#B3DE69', '#FDB462']
# Create the pie chart with custom colors
plt.pie(values, labels=labels, colors=colors, autopct='%1.1f%%')
# Add title
plt.title('현재 상태')
plt.legend(labels,loc = [1.3,0.4],frameon = False)

# Show the chart
plt.show()

 

이전 게시물에서도 사용했듯, 나는 sns.set() 을 사용하여 전체적인 도표의 스타일을 잡는 것을 좋아한다.

하지만 sns.set(font_scale = 1.2) 만 사용했을 때는 seaborn 에서 기본으로 한글 폰트를 잡아서, 만약 그 폰트가 설치되어있지 않으면 네모네모 글씨들을 볼 수 있으니 꼭 font = 'Some Font' 와 같이 사용해주는 것으로 하자. 

 

 

참고문헌

[matplotlib] 리눅스 우분투 matplotlib 그래프 한글 깨짐 문제 해결법 by bskyvision.com

댓글