matplotlib
모듈 설치 : 주피터 노트북에서 설치 가능
!pip install matplotlib
모듈 버전 확인
import matplotlib
matplotlib.__version__
모듈 import
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['axes.unicode_minus'] = False # - 부호 처리
# 주피터 노트북에서 이미지 출력
%matplotlib inline
matplotlib.pyplot
변수 선언 및 초기화
# 변수 선언 및 초기화
x = np.array([1, 2, 3, 4, 5])
y1 = x
y2 = x ** 2
y3 = x ** 3
plot()
가장 기본 적인 함수
선 (Line) 또는 마커 (Marker) 그래프 그리기
plot(y) : 인수 1개 y축
plt.plot(y1)
plt.show()
plot(x,y) : 인수 2개 x, y축
plt.plot(x,y1)
plt.show()
Title 제목 지정
title()
loc : left, center, right
pad : 그래프와 간격
fontdict : font 크기, 굵기 등 지정
title 출력 1
plt.plot(x,y1)
plt.title('X-Y Graph', loc='right', pad=10)
plt.show()
title 출력 2
title_font = {
'fontsize': 14,
'fontweight': 'bold'
}
plt.plot(x,y1)
plt.title('X-Y Graph', loc='right', pad=10)
plt.title('X-Y Graph', loc='left', fontdict=title_font, pad=10)
plt.show())
x,y 레이블
plt.plot(x,y1)
plt.xlabel('x-lable')
plt.ylabel('y-lable')
plt.show()
axis(축범위)
축의 범위 : 반드시 네 개의 값 (xmin, xmax, ymin, ymax) 필요
axis_xy = [0,6,0,30]
plt.plot(x, y2)
plt.axis(axis_xy)
plt.show()
스타일 지정하기
이미지 참조 : https://wikidocs.net/92083
색상 지정하기
plt.plot(x, y2, 'r')
plt.show()
마커 지정하기
plt.plot(x, y2, 'o')
plt.show()
선 스타일
plt.plot(x, y2, '--')
plt.show()
색상, 마커, 선 모두 지정
plt.plot(x, y2, 'ro-')
plt.show()
속성으로 지정하기
plt.plot(x,y1, 'ro-')
plt.plot(x, y2, color='green', marker='o', linewidth=3)
plt.plot(x, y3, color='#0000ff', marker='o', linewidth=3, markersize=10)
plt.show()
plot 여러개 그리기
plot() 여러개 사용
plt.plot(x, y1, '--')
plt.plot(x, y2, 's')
plt.plot(x, y3, '^')
plt.show()
plot() 인수 여러개 사용
plt.plot(x, y1, 'r', x, y2, 'g', x, y3, 'b')
plt.show()
선/마커/색 모두 적용
plt.plot(x, y1, 'r--', x, y2, 'go', x, y3, 'b^')
plt.show()
grid() 설정
# x,y 축 grid
plt.plot(x, y1, 'r--', x, y2, 'go', x, y3, 'b^')
plt.grid(True)
plt.show()
# y 축 grid
plt.plot(x, y1, 'r--', x, y2, 'go', x, y3, 'b^')
plt.grid(True, axis='y') # 가로방향
plt.show()
범례 표시
plt.plot(x, y1, 'r--', label='y1')
plt.plot(x, y2, 'go', label='y2')
plt.plot(x, y3, 'b^', label='y3')
plt.legend()
plt.show()
Tick 간격
축 간격의 눈금
xticks(), yticks()
plt.plot(x, y1, 'r--', x, y2, 'go', x, y3, 'b^')
plt.xticks(np.arange(0, max(x)+1))
plt.yticks(np.arange(0, max(y3)+10, 10))
plt.show()
그래프 영역 채우기
fill_between(x범위, y범위, 색상alpha)
plt.plot(x,y2)
plt.fill_between(x[1:4], y2[1:4], alpha=0.5)
plt.show()
fill_betweenx(y범위, x범위, 색상alpha)
plt.plot(x,y2)
plt.fill_betweenx(y2[1:4], x[1:4], alpha=0.5)
plt.show()
fill_between(x, y1, y2)
plt.plot(x, y1)
plt.plot(x, y2)
plt.fill_between(x[1:4], y1[1:4], y2[1:4], color='gray', alpha=0.5)
plt.show()
수직/수평선 그리기
plt.plot(x, y1, linewidth='2')
plt.axhline(3, 0, 0.5, color='red', linestyle='--', linewidth='2')
plt.axvline(3, 0, 0.5, color='red', linestyle='--', linewidth='2')
plt.show()
plt.plot(x, y1, linewidth='2')
plt.plot(x[2], y[2], 'ro')
plt.axhline(3, 0, 0.5, color='gray', linestyle='--', linewidth='2')
plt.axvline(3, 0, 0.5, color='gray', linestyle='--', linewidth='2')
plt.annotate('({},{})'.format(x[2], y[2]),(x[2]-0.2, y[2]+0.2))
plt.show()
막대 그래프 그리기
수직 막대 그래프
years = ['2019', '2020', '2021']
values = [100, 200, 300]
plt.bar(years,values)
plt.show()
수평 막대 그래프
years = ['2019', '2020', '2021']
values = [100, 200, 300]
plt.bar(years,values)
plt.show()
산포도 그래프 그리기
plt.plot(x, y1, 'ro')
plt.scatter(x, y2, c='green')
plt.scatter(x, y3, c='blue', s=100)
plt.grid()
plt.show()
히스토그램 그리기
data = np.array([0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 9])
plt.hist(data, bins=10) # 히스토그램 bins는 기둥의 수
plt.show()