[파이썬] 데이터시각화(2) (seaborn 패키지)

2020. 4. 22. 10:10노트/Python : 프로그래밍

 


데이터 형태에 따른 시각화 함수 적용방법  

  • 1차원데이터: 실수값, 실수분포 플롯  
    (커널밀도, 러그, rugplot, kdeplot, distplot) 
    countplot: 카테고리별 데이터가 얼마나 있는지 나타낼 때 사용  

  • 다차원데이터: 데이터변수가 여러개  

    • 2차원, 실수형 데이터 : 스캐터플롯 (jointplot) 
       (만약 카테고리형 데이터가 포함되어 있다면 hue 속성을 지정) 

    • 2차원 카테고리형 데이터 : heatmap(열지도) 사용 

    • 2차원 실수값, 카테고리형 데이터가 섞여 있음 :  
      bar, box, point, violin, swarm plot 이용  
    • 3차원이상의 실수형데이터 : pairplot (그리드형태로 출력)  

 

데이터

import seaborn as sns
tips = sns.load_dataset("tips")
tips

 

# regplot 함수 : 회귀직선, 회귀 점 표시 

%matplotlib notebook
import  matplotlib.pyplot as plt
# regplot 함수 : 회귀직선, 회귀 점 표시 
ax = plt.subplots() # 도화지 세팅 
ax= sns.regplot(x="total_bill",y="tip",data=tips,fit_reg=False) # 회귀선 점으로 시각화하는지 
ax.set_title("Total bill and Tip")

 

 

# jointplot함수: 결합결과를 표시 

# jointplot함수: 결합결과를 표시 
# kind="hex"속성: 표시 종류를 점이 아닌 6각형 색표시로 나타냄
sns.jointplot(x="total_bill", y="tip",data=tips)
sns.jointplot(x="total_bill", y="tip",data=tips, kind="hex")

 

# kdeplot함수: 2차원의 밀집도 그래프 : 등고선 

# shade = True :그림자 표시 속성 

# kdeplot함수: 2차원의 밀집도 그래프 : 등고선 
kde, ax = plt.subplots() # 도화지 생성 
ax=sns.kdeplot(data=tips['total_bill'],data2=tips['tip'])
ax=sns.kdeplot(data=tips['total_bill'],data2=tips['tip'], shade=True)
#shade = True :그림자 표시 속성 

 

# barplot함수 : 막대그래프 표시 

# barplot함수 : 막대그래프 표시 
ax=plt.subplots()
ax=sns.barplot(x="time",y="total_bill",data=tips)

 

# boxplot함수 :박스그래프 표시  

orient="v" 속성: 박스 수직으로 표시

boxplot 해석:

    Outlier, Maximum, 3rd Quartile, Median , 1st Quartile , Minimum   

ax2=plt.subplots()
ax2=sns.boxplot(x="day",y="total_bill",data=tips, orient="v")

ax3=plt.subplots()
ax3=sns.boxplot(x="day",y="total_bill",data=tips, hue="smoker",palette="Set3",orient="v")

 

#Swarmplot 함수: 데이터 점으로 표시 

ax4=plt.subplots()
ax4=sns.boxplot(x="day",y="total_bill",data=tips, hue="smoker",palette="Set3",orient="v")
#Swarmplot 함수: 데이터 점으로 표시 
ax4=sns.swarmplot(x="day",y="total_bill",data=tips)

 

# violinplot 함수: 데이터 밀집도 표시 

# violinplot 함수: 데이터 밀집도 표시 
ax5=plt.subplots()
sns.violinplot(x='time', y="total_bill", data=tips)

 

# Pariplot 함수: 관계그래프 표시 

# Pariplot 함수: 관계그래프 표시 
sns.pairplot(tips)

pg=sns.PairGrid(tips) # 도화지생성  

pg.map_upper(sns.regplot) # 회귀 점 및 선 표시  

pg.map_lower(sns.kdeplot) # 커널 밀도 표시  

pg.map_diag(sns.distplot, rug=True)# 거리를 점으로 표시