Home AI 시각화 연습_1
Post
Cancel

AI 시각화 연습_1

오늘은 AI를 공부해보면서 Seaborn을 이용한 시각화 연습한 것 중 Relational 그래프를 다뤄보려한다.

Seaborn이란?

Seaborn은 파이썬 데이터 시각화 라이브러리이고, Matplotlib을 기반으로 한 통계 그래픽스 패키지이다.

Relational 그래프

두 가지 변수의 관계를 나타내는 그래프이다.

  • scatterplot : 산점도
  • lineplot : 라인
  • relplot : scatterplot와 lineplot을 합친 그래프

모듈 및 데이터 셋

모듈

1
2
3
4
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

데이터 셋

1
2
3
#tips 데이터
tips = sns.load_dataset("tips")
tips
total_billtipsexsmokerdaytimesize
016.991.01FemaleNoSunDinner2
110.341.66MaleNoSunDinner3
221.013.50MaleNoSunDinner3
323.683.31MaleNoSunDinner2
424.593.61FemaleNoSunDinner4
........................
23929.035.92MaleNoSatDinner3
24027.182.00FemaleYesSatDinner2
24122.672.00MaleYesSatDinner2
24217.821.75MaleNoSatDinner2
24318.783.00FemaleNoThurDinner2

244 rows × 7 columns

1
2
3
# fmri 데이터 셋
fmri = sns.load_dataset("fmri")
fmri
subjecttimepointeventregionsignal
0s1318stimparietal-0.017552
1s514stimparietal-0.080883
2s1218stimparietal-0.081033
3s1118stimparietal-0.046134
4s1018stimparietal-0.037970
..................
1059s08cuefrontal0.018165
1060s137cuefrontal-0.029130
1061s127cuefrontal-0.004939
1062s117cuefrontal-0.025367
1063s00cueparietal-0.006899

1064 rows × 5 columns

Relational 그래프 정리

scatterplot

scatterplot은 산점도를 나타내는 그래프이다.

1
2
#scatterplot : 산점도 scatter(x, y, data)
sns.scatterplot(x='total_bill', y='tip', data=tips)
1
<Axes: xlabel='total_bill', ylabel='tip'>

1
2
3
#hue : 의미에 따라 점의 색을 변경
#style: 모양 구분
sns.scatterplot(x='total_bill', y= 'tip', data = tips, hue = 'day', style = 'time')
1
<Axes: xlabel='total_bill', ylabel='tip'>

lineplot

lineplot은 line을 나타내는 그래프이며, 데이터가 연속적일 경우 주로 사용한다. lineplot(x,y,data)

1
sns.lineplot(x='timepoint', y='signal', data=fmri)
1
<Axes: xlabel='timepoint', ylabel='signal'>

1
2
3
4
# 위의 그래프에서 색이 칠해져 있는 부분은 신뢰구간(confidene interval)로 ci 파라미터로 조절 가능
# hue와 style 옵션을 사용할 수 있음

sns.lineplot(x='timepoint',y='signal',data=fmri,hue='event',style='event',ci=None)
1
<Axes: xlabel='timepoint', ylabel='signal'>

relplot

relplot은 scatterplot과 lineplot을 합쳐 놓은 그래프이다.

  • kind 파라미터에 scatter나 line으로 형식 선택 가능 (default=scatter)
  • scatterplot과 lineplot은 AxeSubplot을 반환하지만, relplot은 FaceGrid를 반환
  • FaceGrid를 반환하는 경우 여러 그래프를 한 번에 그릴수 있음
  • hue와 style 옵션 모두 사용 가능
1
2
3
4
#scatter
sns.relplot(x='total_bill',y='tip',kind='scatter',hue ='time',data=tips)

1
<seaborn.axisgrid.FacetGrid at 0x164067f70>

1
2
#line
sns.relplot(x='timepoint',y='signal',kind='line',hue ='event', style ='event',ci = None,data=fmri)
1
<seaborn.axisgrid.FacetGrid at 0x16337f880>

느낀점

AI를 입문한지 얼마 되지 않아 Seaborn과 pandas를 다루는게 미숙하고 어렵지만 계속 공부하고 사용해보면서 익숙해져봐야겠다. Seaborn을 통해 데이터 셋을 한 후 Relational 그래프를 통해 시각화 한 것을 보니 좀 신기하고 흥미로웠다. 더 열심히 공부해봐야겠다.

This post is licensed under CC BY 4.0 by the author.