본문 바로가기

프로그래밍 언어/Python

[Python] 여러개변수 시각화/히트맵: plt.scatterplots(), sb.regplot(), sb.pairplot(), plt.hist2d()

반응형

여러개 변수 시각화1 : plt.scatterplots()

ㄴ Bivariate Visualization: 두 컬럼간의 관계를 표현한 차트

ㄴ 1. plt의 scatter사용

ㄴ 2. seaborn의 regplot 사용

ㄴ 3. seaborn의 pairplot 사용

 

- 두 컬럼간의 관계를 차트로 나타내는 방법

- 관계란: 1. 비례 관계, 2. 반비례 관계, 3. 아무 관계 없음. 3가지를 말한다.

 

plt.scatter(data = 데이터프레임, x = 컬럼명1, y = 컬럼명2 )

ㄴ 왜 두 컬럼비교하는 거라서, x축,y축 모두 설정해야한다. 

 

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb
%matplotlib inline

plt.scatter(data = df,x = 'displ', y ='comb' )

plt.title('Displ Vs Comb')
plt.xlabel('Displacement(L)')
plt.ylabel('Combined Fuel Eff(mpg)')

plt.show()

 

 

상관계수(= 상관분석, 상관관계분석): corr()

ㄴ correlation의 약자

 

데이터프레임[두 컬럼명].corr()

ㄴ 본인과 본인의 관계는 의미 없음. 대각선은 필요없는 데이터

ㄴ 마이너스로 나오면 그것이 반비례 관계. 

ㄴ마이너스 1에 가까울수록 강한 반비례 관계

ㄴ 0근처로 가면 관계없을 확률이 높음

 

여러개 변수 시각화2 : sb.regplot()

ㄴ reg: regression(회귀)의 약자임: 데이터에 fitting 한다는 의미

 

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb
%matplotlib inline

sb.regplot(data = df, x = 'displ',y = 'comb')

plt.title('Displ Vs Comb')
plt.xlabel('Displacement(L)')
plt.ylabel('Combined Fuel Eff(mpg)')

plt.show()

 

 

여러개 변수 시각화3 : sb.pairplot()

 

sb.pairplot(data = 데이터프레임, vars = [컬럼명1,컬럼명2])

ㄴvars 변수를 말한다. 두개의 컬럼으로 비교해라.

ㄴvars에는 컬럼 이름을 써주자!

 

 

sb.pairplot(data=데이터프레임, kind = 'reg', 

            x_vars=[컬럼명1, 컬럼명2], y_vars=[컬럼명1, 컬럼명2])

ㄴ리그레이션: reg의 약자, 데이터의 피팅. 

 

 

 

- 그러나 스케터는, 여러 데이터가 한군데 뭉치면 보기 힘들다. 이를 어떻게 해결할 것인가.

 

Heat Maps : plt.hist2d()

- 밀도를 나타내는 데 좋다.

 

plt.hist2d(data = 데이터프레임, x = 컬럼명',y= 컬럼명,cmin = 숫자, cmap = 'viridis_r'

          ,bins = 숫자)

ㄴ cmin  데이터 없는 부분은 빼준다. 

 

plt.hist2d(data = df, x = 'displ',y='comb',cmin = 0.5, cmap = 'viridis_r'
          ,bins = 20)
plt.colorbar()

plt.title('Displ Vs Comb')
plt.xlabel('Displacement(L)')
plt.ylabel('Combined Fuel Eff(mpg)')

plt.show()


sb.heatmap (data = crime1,cmap = 'RdPu', annot = True, fmt = '.1f', linewidths= 0.8)

plt.show()

ㄴ annot: 어노테이션: 표기, 숫자를 표기하라. 

ㄴ fmt 포맷 .1f 소수점 한자리

ㄴ linewidths 각 사이의 선, 0부터 1까지 사용할 수 있다.

반응형