📒 Today I Learn/🐍 Python

[데이터 시각화] 파이썬으로 그래프 그리기 : seaborn (2) 회귀 그래프, 히트맵 그리기

ny:D 2024. 5. 16. 18:22

240516 Today I Learn

Regression Plot

regplot

💡regplot
sns.regplot(data=데이터프레임, x = "x축에 들어갈 데이터", y = "y축에 들어갈 데이터")

  • scatterplot와 lineplot을 합쳐놓은 그래프
  • lineplot은 scatterplot의 경향성을 예측하는 쪽으로 그어짐

total_bill과 tip의 회귀 그래프

sns.regplot(data=tips,x='total_bill',y='tip')

lmplot

💡 lmplot
sns.lmplot(data=데이터프레임, x='x축에 들어갈 컬럼', y='y축에 들어갈 컬럼')
regplot과 다르게 hue를 사용해 categorical 변수를 지정해 카테고리별로 각각의 데이터 분포와 선형 관계를 표시할 수 있다.
  • lmplot을 사용해 기본 그래프 그리기

sns.lmplot(data=tips,x='total_bill',y='tip')
  • lmplot에 다양한 옵션 적용하기

sns.lmplot(data=tips,x='total_bill',y='tip',
           hue = 'time', ## 색상 다르게 지정
           markers = ['o','x'] ## 마커 스타일 변경
           )

Matrix Plot

Heatmap

💡 heatmap 
2차원 데이터 안에 대응하는 숫자값을 단순히 보여주는 것 뿐만 아니라 색상의 농도를 통해 숫자값을 가시적으로 표현할 수 있음
  • 히트맵 그리기

glue / glue를 이용해 그린 히트맵

glue = sns.load_dataset("glue").pivot(index="Model", columns="Task", values="Score")
sns.heatmap(glue)
  • 히트맵에 다양한 옵션 지정하기

sns.heatmap(glue,
            vmin = 50, vmax=80, #min, max 범위 지정하기
            annot = True, #숫자 표시하기
            fmt ='.1f', # 숫자 표시 포맷 바꾸기
            linewidth= 0.5, #선 표시하기
            cmap = 'crest' #색상 변경
            )

 

Multi-Plot grid

pairplot

💡pairplot

한 dataset에 존재하는 모든 series들 간의 상관관계를 한 번에 보여주는 표

  • 기본 pairplot 그리기

sns.pairplot(iris)
  • 다양한 옵션 추가하기

sns.pairplot(iris,
             hue='species', # 특정 범주에 따라 색 지정
             diag_kind='kde', # 대각선에 들어갈 그래프의 형태 지정(‘auto’, ‘hist’, ‘kde’, None)
             kind = 'reg', # 대각선을 제외할 나머지 그래프의 형태 지정 (‘scatter’, ‘kde’, ‘hist’, ‘reg’)
             corner=True
             )

 

  • 대각선에 들어갈 그래프의 형태 지정하기 → ‘auto’, ‘hist’, ‘kde’, None

kde / hist

  • 대각선을 제외한 나머지 부분 그래프의 형태 지정하기 → ‘scatter’, ‘kde’, ‘hist’, ‘reg’

scatter, kde / hist, reg

  • 원하는 x, y축 범위 선택하기

sns.pairplot(iris,
             x_vars=['sepal_length','petal_length'], # x축에 들어갈 데이터선택
             y_vars=['sepal_width','petal_width'], # y축에 들어갈 데이터선택
             hue='species', 
             diag_kind='kde', 
             kind = 'reg'
             )