시각화 패키지
맷플롯리브 (Matplotlib)는 파이썬에서 자료를 차트 (chart)나 플롯 (plot)으로 시각화하는 패키지이다. 맷플롯리브는 다음과 같은 정형화된 차트나 플롯 이외에도 저수준 API를 사용한 다양한 시각화 기능을 제공한다.
|
pyplot 서브패키지
맷플롯리브 패키지에는 pyplot 라는 서브패키지가 존재한다. 이 pyplot 서브패키지는 매트랩 (matlab) 이라는 수치해석 소프트웨어의 시각화 명령을 거의 그대로 사용할 수 있도록 맷플롯리브 의 하위 API를 포장 (wrapping)한 명령어 집합을 제공한다. 간단한 시각화 프로그램을 만드는 경우에는 pyplot 서브패키지의 명령만으로도 충분하다. 다음에 설명할 명령어들도 별도의 설명이 없으면 pyplot 패키지의 명령라고 생각하면 된다.
맷플롯리브 패키지를 사용할 때는 보통 다음과 같이 주 패키지는 mpl 이라는 별칭 (alias)으로 임포트하고 pyplot 서브패키지는 plt 라는 다른 별칭으로 임포트하여 사용하는 것이 관례이므로 여기에서도 이러한 방법을 사용한다.
import matplotlib as mpl
import matplotlib.pyplot as plt
주피터 노트북을 사용하는 경우에는 다음처럼 %matplotlib 매직 (magic) 명령으로 노트북 내부에 그림을 표시하도록 지정해야 한다.
%matplotlib inline
라인 플롯
간단한 플롯은 선을 그리는 라인 플롯 (line plot)이다. 라인 플롯은 데이터가 시간, 순서 등에 따라 어떻게 변화하는지 보여주기 위해 사용한다.
plt.title("Plot")
plt.plot([1, 4, 9, 16])
plt.show()
- title 함수는 제목을 표시한다. |
plt.title("x ticks")
plt.plot([10, 20, 30, 40], [1, 4, 9, 16])
plt.show()
한글폰트 사용
맷플롯리브에서 한글을 사용하려면 다음과 같이 한글 폰트를 적용해야 한다. 당연히 해당 폰트는 컴퓨터에 깔려 있어야 한다.
|
# 리눅스
sudo apt install -y fonts-nanum*
sudo fc-cache -fv
rm ~/.cache/matplotlib -rf
폰트를 설치한 후에는 다음 명령으로 원하는 폰트가 설치되어 있는지 확인한다.
import matplotlib.font_manager
matplotlib.font_manager._rebuild()
sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist if f.name.startswith("Nanum")])
---
['Nanum Brush Script',
'Nanum Pen Script',
'NanumBarunGothic',
'NanumBarunGothic',
'NanumBarunGothic',
'NanumBarunGothic',
'NanumBarunpen',
'NanumBarunpen',
'NanumGothic',
'NanumGothic',
'NanumGothic',
'NanumGothic',
'NanumGothic Eco',
'NanumGothic Eco',
'NanumGothic Eco',
'NanumGothicCoding',
'NanumGothicCoding',
'NanumMyeongjo',
'NanumMyeongjo',
'NanumMyeongjo',
'NanumMyeongjo Eco',
'NanumMyeongjo Eco',
'NanumMyeongjo Eco',
'NanumSquare',
'NanumSquare',
'NanumSquare',
'NanumSquare',
'NanumSquareRound',
'NanumSquareRound',
'NanumSquareRound',
'NanumSquareRound']
설치된 폰트를 사용하는 방법은 크게 두가지이다.
|
한글 문자열은 항상 유니코드를 사용해야 한다.
rc parameter를 설정하여 그림 전체에 적용한다.
# 폰트 설정
mpl.rc('font', family='NanumGothic')
# 유니코드에서 음수 부호설정
mpl.rc('axes', unicode_minus=False)
정상적으로 폰트가 설치되고 rc parameter가 제대로 설정되었다면 다음 코드를 실행하였을 때 한글이 잘 보여야 한다.
plt.title('한글 제목')
plt.plot([10, 20, 30, 40], [1, 4, 9, 16])
plt.xlabel("엑스축 라벨")
plt.ylabel("와이축 라벨")
plt.show()
객체마다 별도의 폰트를 적용하고 싶을 때는 다음과 같이 폰트 패밀리, 색상, 크기를 정하여 플롯 명령의 fontdict 인수에 넣는다.
font1 = {'family': 'NanumMyeongjo', 'size': 24,
'color': 'black'}
font2 = {'family': 'NanumBarunpen', 'size': 18, 'weight': 'bold',
'color': 'darkred'}
font3 = {'family': 'NanumBarunGothic', 'size': 12, 'weight': 'light',
'color': 'blue'}
plt.plot([10, 20, 30, 40], [1, 4, 9, 16])
plt.title('한글 제목', fontdict=font1)
plt.xlabel('엑스 축', fontdict=font2)
plt.ylabel('와이 축', fontdict=font3)
plt.show()
'Python Library > Matplotlib' 카테고리의 다른 글
[Matplotlib] 시각화 패키지 (4) (0) | 2022.02.22 |
---|---|
[Matplotlib] 시각화 패키지 (3) (0) | 2022.02.22 |
[Matplotlib] 시각화 패키지 (2) (0) | 2022.02.22 |
[Matplotlib] 이미지맵 (imshow) (0) | 2021.12.22 |
Matplotlib (0) | 2021.12.22 |