Matplotlib는 파이썬에서 데이터를 차트나 플롯(Plot)으로 그려주는 라이브러리 패키지로서 가장 많이 사용되는 시각화(Data Visualizaion) 패키지
Matplotlib는 라인 플롯, 바 차트, 파이차트, 히스토그램, Box plot, Scatter Plot 등을 비롯하여 다양한 차트와 플롯 스타일을 지원
import matplotlib.pyplot as plt
alpha : 투명도
kind : 그래프 종류 'line', 'bar', 'barh', 'kde'
logy : Y축에 대해 Log scaling
use_index : 객체의 색인을 눈금 이름으로 사용할지 여부
rot : 눈금 이름 돌리기 (rotating) 0 ~ 360
xticks, yticks : x, y축으로 사용할 값
xlim, ylim : X, Y축의 한계
grid : 축의 그리드를 표현할지 여부
subplots : 각 column에 독립된 subplot 그리기
sharex, sharey : subplots=True 이면 같은 X,Y축을 공유하고 눈금과 한계를 연결
figsize : 생성될 그래프의 크기를 tuple로 지정
title : 그래프의 제목 지정
legend : subplot의 범례 지정
sort_columns : column을 알파벳 순서로 그린다.
subplot을 이용해 여러개의 그래프를 한번에 그릴 수 있음
# 데이터 준비
hist_data = np.random.randn(100)
scat_data = np.arange(30)
plt.subplot(2, 2, 1)
plt.plot(data)
plt.subplot(2, 2, 2)
plt.hist(hist_data, bins = 20)
plt.subplot(2, 2, 3)
plt.scatter(scat_data, np.arange(30) + 3)
plt.show()
그래프를 그릴 때 표시되는 색이나 마커 패턴을 바꾸는 것
plt.plot(data, 'g--')
plt.show()
figsize를 이용하여 가로, 세로 길이 조절 가능 (단위는 inch)
주의 ) figsize는 항상 맨 위에 올라 와야 함
plt.figure(figsize= (10, 5))
plt.plot(data, 'k+')
plt.show()
여러 그래프에 대한 크기 조절
(그냥 plt.figure만 해주면 된다. 똑같다)
plt.figure(figsize= (10, 10))
plt.subplot(2, 2, 1)
plt.plot(data)
plt.subplot(2, 2, 2)
plt.hist(hist_data, bins = 20)
plt.subplot(2, 2, 3)
plt.scatter(scat_data, np.arange(30) + 3)
plt.show()
그래프 범례추가
#데이터 준비
data = np.random.randn(30).cumsum()
# 데이터 시각화
plt.plot(data, 'k--', label = 'Default')
plt.plot(data, 'b--', drawstyle = 'steps-post', label = 'steps-post')
plt.legend()
plt.show()
위 코드와 다른 방법으로
plt.legend(['XXX', 'YYY'])
도 있다.
그래프 이름 달기
# 데이터 준비
plt.plot(np.random.randn(1000).cumsum())
# 데이터 시각화
plt.title('Random Graph')
plt.xlabel('Stages')
plt.ylabel('Values')
plt.show()
다양한 한글 폰트 사용 코드들이 있지만 안되는 경우가 종종 있었지만 이 코드는 계속 사용 중
그래프 사이즈까지 같이 묶어서 주로 사용
# 한글 폰트 적용
from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
# 그래프 사이즈
plt.rcParams["figure.figsize"] = (16,6)
++ 자주 쓰는 내용으로 계속 업그레이드 할 거임