tips = sns.load_dataset("tips")
tips
데이터는 seaborn에서 제공하는 tips을 가져왔다.
sns.replot을 이용해 산점도를 만들 수 있다.
sns.relplot(data=tips, x='total_bill', y='tip')
인자값에는 data, x에 들어갈 컬럼, y에 들어갈 컬럼을 넣어준다.
이는 아래 sns.scatterplot()과 동일한 결과를 가져온다.
sns.scatterplot(data=tips, x='total_bill', y='tip')
와..matplotlib보다 훨씬 쉽다!!!!!!!!!!
시간과 같이 지속성을 가진 변수와 다른 변수의 관계를 나타낼 때 효과적!
위와 같은 데이터를 선형 그래프로 만들어보자
#line plot
sns.relplot(data=dowjones, x='Date', y='Price', kind='line')
sns.lineplot(data=dowjones, x='Date', y='Price')
sns.relplot() 에서 인자 kind=
를 ‘line’ 으로 작성해주면 된다.
이는 sns.lineplot
과 동일한 결과를 가져온다.
🔎x축값은 하나인데 y값이 두개이상일 경우도 있다.
이때 기본적으로 lineplot은 여러 값들을 모아서 평균을 선으로, 95% 신뢰구간을 색으로 표현함
실습을 위해 fmri라는 데이터를 가져왔다.
아래와 같이 timepoint컬럼의 데이터가 18일때 signal컬럼의 값은 다양하다. 이를 선형으로 나타내면
sns.relplot(data='fmri',x='timepoint',y='signal',kind='line')
평균을 선으로!
95%신뢰구간을 색으로 그려진 것을 확인할 수 있다.
errorbar=None
입력errorbar=’sd’
입력seaborn의 replot()
도 스타일을 변경해 줄 수 있다.
hue=
: 컬럼 데이터 별로 나눠서 보여줌(색을 다르게 함.)
size=
: 데이터 포인트 크기
style=
: 데이터 포인트 스타일
sns.relplot(
data=tips,
x='total_bill', y='tip',
hue='smoker',#smoker 컬럼을 기준으로
style='time' #time 컬럼을 기준으로 변경
size = 'size' #size 컬럼을 기준으로
)
이를 잘 사용하면 좋다.
컬럼의 값을 나눠서 볼 수 있도록 해줌.
hue가 가지는 값이 연속형 변수인 경우 색이 palette 형태로 표현된다.
hue=
인자에 연속성을 갖고 있는 size 컬럼을 넣어보자
sns.replot(data=tips,x='total_bill', y='tip',hue='size')
그럼 위와 같이 색이 점점 변하는 팔레트 형식의 산점도를 볼 수 있다.
size를 사용하는 경우 sizes=(a,b)
를 통해 점들의 크기를 다양하게 조절할 수 있다.
sns.replot(data=tips,x='total_bill', y='tip',size='size',sizes=(15,200))
sizes=(15,200)
: 최소 15~ 최대 200 크기로
light=
값이 커질수록 가장 밝은 색의 명도가 높아짐.n_colors=
에는 가질 수 있는 카테고리 개수를 넣어줌.palette = sns.cubehelix_palette(light=.9, n_colors=6)
sns.relplot(
x="time", y="firing_rate",
hue="coherence", style="choice",
palette=palette,
kind="line", data=dots
)
이 데이터의 굵기를 size=
인자를 통해 조절해보자
sns.relplot(
x="time", y="firing_rate",
hue="coherence", size="choice",
palette=palette,
kind="line", data=dots
)
굳!
여러 플롯으로 나눠 분석하는 것.
한번에 여러 플롯을 보여줄 수 있다.
col=
이나 row=
를 이용해 플롯들을 나누고height=
를 통해서 플롯의 크기를 조절할 수 있다.col=
코드 사용 예시
sns.relplot(data=tips,x='total_bill', y='tip', hue='smoker',col='time')
col='time'
인자값을 통해 time이라는 컬럼의 데이터를 나눠서 볼 수 있게 된다.
(참고로 time컬럼에는 Lunch, Dinner 두개의 데이터가 있음.)
row=
코드 사용 예시
sns.relplot(data=fmri, x='timepoint, y='signal', hue='subject',
col='region', row='event', height=3.5,
kind='line', estimator=None)
region 컬럼과 event로우 인덱스를 기준으로 보면
요렇게 볼 수 있다.
데이터 분석시 시각화를 할 때 나눠서 보는 습관을 기르자!