import pandas as pd
import numpy as np
import matplotlib.pyplot as plt #별칭지정
import seaborn as sb
Matplotlib
파이썬 시각화 라이브러리
plot() : 다이어그램에 점(마커)을 그리는데 사용한다
marker : 지정된 마커로 각 지점을 강조할 수 있다
linestyle : 플롯된 선의 스타일을 변경할 수 있다
xlable(), ylable() : x축과 y축에 대한 레이블을 설정할 수 있다
grid() : 플롯에 그리드 선을 추가할 수 있다
subplot() : 여러 그래프를 그릴 수 있다
ex)
plt.subplot(1,2,2) #1줄에 두칸에 두번째에 그래프를 표시한다
ex)
grid( axis = 'y' ) #그리드 선 추가 한쪽만 표현할때는 axis=x or y
scatter() : 산점도를 그릴 수 있다
bar() : 막대 그래프를 그릴 수 있다
hist() : 히스토그램을 생성한다
pie() : 원형차트를 만든다
-----------------------------------------------------------------------------------------
# 첫 실행에 입력하면 한글로 작성해도 오류가 뜨지 않는다
import platform
from matplotlib import font_manager, rc
plt.rcParams['axes.unicode_minus'] = False
if platform.system() == 'Darwin':
rc('font', family='AppleGothic')
elif platform.system() == 'Windows':
path = "c:/Windows/Fonts/malgun.ttf"
font_name = font_manager.FontProperties(fname=path).get_name()
rc('font', family=font_name)
else:
print('Unknown system... sorry~~~~')
-----------------------------------------------------------------------------------------
전체 타이틀 표시
plt.title()
서브플롯으로 여러개의 그래프를 표시한다면 subtitle을 설정할 수도 있다
plt.suptitle()
x,y축에 대한 레이블을 표시
xlabel(), ylabel() 함수를 사용
plt.xlabel('X-Label')
plt.ylabel('Y-Label')
plt.plot([1,2,3,4],[1,4,9,16], label='Test($)')
축 범위 지정하기
xlim() x축이 표시되는 범위를 지정하거나 리턴
ylim() y축이 표시되는 범위를 지정하거나 리턴
plt.xlim([0, 5]) #[xmin, xmax]
plt.ylim([0, 20]) #[ymin, ymax]
axis() x,y축이 표시되는 범위를 지정하거나 리턴
plt.axis([xmin, xmax, ymin, ymax])
범례 실행하기
plt.legend()
plt.legend(loc=' upper right ' )
plt.legend(loc=' upper left ' )
plt.legend(loc=' lower right ' )
plt.legend(loc=' lower left ' )
그래프 크기 설정하기
plt.figure(figsize=(가로길이,세로길이))
라벨에 여백 지정하기
margin : 바깥 여백
padding : 안쪽 여백
plt.xlabel('X-Label', labelpad=15, fontdict=font1, loc='right') #loc는 location의 약자이다.
plt.ylabel('Y-Label', labelpad=20, fontdict=font2, loc='top')
color 설정하기
'b' blue
'g' green
'r' red
'c' cyan (하늘색)
'm' magenta (자주색)
'y' yellow
'k' black
'w' white
선 종류 (linestyle) 지정하기
solid, dashed, dotted, dash-dot
plt.plot([1,2,3],[4,4,4],'-',color='C0', label='Solid')
plt.plot([1,2,3],[3,3,3],'--',color='C0', label='Dashed')
plt.plot([1,2,3],[2,2,2],':',color='C0', label='Dotted')
plt.plot([1,2,3],[1,1,1],'-.',color='C0', label='Dash-dot')
marker(마커) 표시
'-' point
',' pixel
'o' circle
'v' triangle_down
'^' triangle_up
'<' triangle_left
'>' triangle_right
'1' tri_down
'2' tri_up
'3' tri_left
'4' tri_right
's' square
'p' pentagon
'*' start
'h' hexagon1
'H' hexagon2
'+' plus
'x' x
'D' diamond
'd' thin_diamond
'|' vline
'_' hline
특별한 설정이 없으면 그래프가 실선으로 그려지지만 표기를 위해서 마커 형태의 그래프를 그릴수 있다
ex)
plt.plot(x, y, 'bo')
plot()함수에 'bo'를 입력시켜주면 원형마커로 그래프가 표시된다
b[lue]o[circle]을 나타내는 문자이다
bo- : 단색선
bo-- : dashed line
plt.plot([1,2,3,4],[2,3,5,10],'bo-')
plt.plot([1,2,3,4],[6,7,8,12],'bo--')
축 스케일 변경하기
xscale(), yscale()함수를 사용해서 그래프의 축 스케일을 다양하게 지정할 수 있다
축은 기본적으로 linear(선)스케일로 표시되지만 log, symlog(symmetrical log scale), logit으로 변경할 수 있다
그래프 영역 채우기
.fill()
fill_between()
fill_betweenx()
plt.fill([1.9, 1.9, 3.1, 3.1],[1.0, 4.0, 6.0, 3.0], color='lightgrey', alpha = 0.5) # alpha는 투명도이다
plt.fill_between(x[1:3], y[1:3], alpha = 0.5)
-------------------------------------------------------------------------------------------
많이 사용하지는 않지만 그 외의 그래프 형태는 아래와 같은 것들이 있다.
#히트맵 : 다양한 값을 갖는 숫자데이터를 열분포 형태와 같이 색상을 이용해서 시각화 한 것
plt.matshow()
arr = np.random.standard_normal((30,40))
#표준정규분포를 가지는 2차원 어레이
cmap = plt.get_cmap('bwr')
plt.matshow(arr, cmap=cmap)
#옵션으로 컬러바를 나타낼수 있다 shrink파라미터로 컬러바의 크기를 결정할수 있다.
plt.colorbar(shrink=0.8, aspect=10)
plt.show()
#바이올린 플롯( Violinplot ) 그리기 : 데이터의 분포와 범위를 한눈에 보기 쉽게 나타내는 그래프 형식
plt.style.use('default')
np.random.seed(0) #정해진 숫자값에 따라서 마치 난수처럼 보이는 수열을 생성
data_a = np.random.normal(0, 2.0, 1000)
data_b = np.random.normal(-3.0, 1.5, 500)
data_c = np.random.normal(1.2, 1.5, 1500)
fig, ax = plt.subplots()
violin = ax.violinplot([data_a, data_b, data_c], positions=[2,3,4]) #2,3,4위치에 그래프가 그려짐
plt.show()
'Python > Matplotlib' 카테고리의 다른 글
scatter, histogram 등의 차트를 스트림릿(streamlit)으로 표현하기 (0) | 2024.04.26 |
---|---|
Matplotlib) Scatter(스캐터) 차트와 HeatMap(히트맵) 그리기 (0) | 2024.04.16 |
Matplotlib) Histograms(히스토그램) 차트 그리기 (0) | 2024.04.15 |
Matplotlib) Pie (파이) 차트 그리기 (0) | 2024.04.15 |
Matplotlib) Bar chart : countplot 차트 그리기 (0) | 2024.04.15 |