본문 바로가기
스터디 공간

[PYTHON study - Seaborn] Graph plot (1)

by 재스민맛 2021. 3. 4.
반응형

■ python study seaborn(씨봄/세아봄)

 

파이썬 데이터 처리를 하기 위해서는 통계적인 지식이나, 파이썬 스킬도 중요하지만,

파이썬의 강력한 기능 중 하나인 시각화 도구를 잘 다루는 것도 중요합니다.

일반적으로 주로 사용하는 matplotlib와 seaborn이 있으며, 그 중 세련된 시각화 이미지를 제공해주는 seaborn을 알아보겠습니다.

 

 

seaborn import

 

▷ Basic plot (가장 기본적으로 사용되는 7가지 정도의 plot)

- lineplot

- countplot

- scatterplot

- barplot

- (분포 특성) kdeplot, distplot, heatmap

 

1. lineplot

연습해볼 데이터 로드 (1)-tips / (2) fmri

 

fmri Data

sns.lineplot(x='x축에 넣을 데이터', y='y축에 넣을 데이터', data='불러올 데이터')의 형태로 사용할 수 있습니다.

[In]

[Out]

추가적으로 hue를 넣어서, 다음과 같이 데이터를 분리하여 보여 줄 수 있습니다.

[In]

[Out]

 

 

2. countplot

① countplot은, 데이터의 개수를 세서 y축에 보여주는 역할을 합니다.

담배를 피는 사람의 성별(hue='sex')에 따라서 count를 한 결과는 아래와 같습니다.

② hue_order=['Female', 'Male']을 하게되면, 그래프의 순서를 바꿔줍니다.

[In]

[Out]

(hue_order=['Female', 'Male'])

 

 

3. scatterplot

방금 전 확인한 데이터를 scatterplot으로 확인해보면, 점의 모양으로 분포를 확인할 수 있습니다.

값의 분포를 확인할 때 유용하게 사용할 수 있습니다.

[In]

[Out]

 

 

scatter plot을 이용하여, total_bill과 tip의 상관관계를 살펴보겠습니다

total_bill이 증가할수록 tip도 증가하는 모습을 가진 것을 알 수 있습니다.

이렇게 scatterplot을 이용하여 직관적으로 데이터의 모양을 이해할 수 있습니다.

[In]

[Out]

 

4. barplot

barplot은 해당 데이터에 대한 평균치를 보여줍니다.

tips 데이터에서 날짜별 tip의 평균을 보고 싶을 경우에 sns.barplot(x='day', y='tip', data=tips) 처럼 입력할 수 있습니다.

각 평균치가 맞는지는 df의 groupby를 사용하여 확인해보도록 하겠습니다.

 

tips.groupby('day')['tips'] 는, tips 데이터의 'day' 컬럼으로 한번 필터링을 거치고, tips 컬럼에 대한 값을 뽑아낸 것이라고 이해를 하면 될 거 같습니다. 그리고, 그 값에 대한 평균값(mean())을 통해서, 값을 확인 할 수 있으며 그 값은 각 막대 그래프와 일치한다는 것을 확인할 수 있습니다.

[In] 

[Out]

 

 

5. distplot

distplot은 값의 분포를 확인할 수 있습니다. hist(히스토그램)와 비슷하다고 이해볼 수 있습니다.

tips의 값의 분포를 살펴보겠습니다. 값을 확인해보면, 2~4에 대한 값의 분포가 대부분이라는 것을 살펴볼 수 있습니다.

bins는 막대 그래프의 개수입니다. 

[In] 

[Out]

 

6. heatmap

heatmap 역시, 값의 분포를 확인할 수 있습니다. 단, heatmap 매트릭스의 형태로 넣어주어야 합니다.

titanic 데이터를 가지고 heatmap을 한번 살펴보도록 하겠습니다.

① load_dataset('titanic')을 통해서 데이터를 가지고 오도록 합니다.

② df.corr()은 상관관계의 형태로 데이터를 보여주며 해당 상관관계는 매트릭스의 형태를 가집니다.

df.corr() - 상관관계 (매트릭스 형태)

③ sns.heatmap을 통해서, 데이터를 시각화해보겠습니다.

아래와 같이 그림의 색을 통해서, 매트릭스 형태의 데이터로 확인할 수 있습니다.

(+ 우측의 색 속성은, vmin=-1, vmax=1의 파라미터를 통해서 설정이 가능합니다.)

[In]

[Out]

 

타이타닉을 탑승한 승객 중, 성별과 survived의 관계를 살펴보겠습니다.

해당 데이터처럼, 여성 분들이 +의 상관관계를 가지는 것으로 보아 남성들보다 여성들이 더 많이 살아 남은 것을 보여줍니다.

[In]

[Out]

 

7. kdeplot

분포를 보여주는 kdeplot은 1차원 데이터, 2차원데이터를 보여주는 기능을 합니다.

아래와 같이 kdeplot(데이터)를 쓰게되면, 1차원의 데이터 분포를 보여줍니다.

[In]

[Out]

 

 

2차원 데이터의 분포를 보려면, sns.kdeplot(데이터1, 데이터2)의 format으로 적을 시, 해당 데이터의 분포를 2차원 형태로 볼 수 있게됩니다.

shade_lowest는 가장 낮은 테두리를 벗어나게 되면, 투명하게 해주는 옵션입니다.

shade_lowest가 없으면, axes 전체가 파란색이 되니, 사용해주면 좋을 것 같습니다.

[In]

[Out]

반응형

'스터디 공간' 카테고리의 다른 글

[Python Study] VS Code vs. Juputer Notebook  (0) 2021.03.14
[데이터 분석] numpy (1)  (0) 2021.03.06
[회로이론] 인덕터 (Inductor)  (0) 2021.03.01
[회로이론] Spectre (2) - Syntax  (0) 2021.03.01
[Pandas] 누락 데이터 처리  (0) 2021.03.01

댓글