반응형
1. seaborn 설치
pip3 install seaborn
2. 산점도 - 변수 간 관계 표현하기
소스 코드 (기본 차트)
import pandas as pd
mpg=pd.read_csv('mpg.csv')
import seaborn as sns
sns.scatterplot(data=mpg, x='displ', y='hwy')
결과 사진

소스 코드(축 범위 설정)
import pandas as pd
mpg=pd.read_csv('mpg.csv')
import seaborn as sns
sns.scatterplot(data=mpg, x='displ', y='hwy').set(xlim=(3,6), ylim=(10,30))
결과 사진

소스 코드(표식 색깔 변경)
import pandas as pd
mpg=pd.read_csv('mpg.csv')
import seaborn as sns
sns.scatterplot(data=mpg, x='displ', y='hwy', hue='drv')
결과 사진

3. 막대 그래프 - 집단 간 차이 표현하기
소스 코드(기본 그래프)
import pandas as pd
mpg=pd.read_csv('mpg.csv')
import seaborn as sns
df=mpg.groupby('drv', as_index=False).agg(meanhwy=('hwy', 'mean'))
sns.barplot(data=df, x='drv', y='meanhwy')
결과 사진

소스 코드(크기순 정렬)
import pandas as pd
mpg=pd.read_csv('mpg.csv')
import seaborn as sns
df=mpg.groupby('drv', as_index=False).agg(meanhwy=('hwy', 'mean'))
df=df.sort_values('meanhwy', ascending=False)
sns.barplot(data=df, x='drv', y='meanhwy')
결과 사진

+ 빈도 막대 그래프 그리기
소스 코드(2가지)
import pandas as pd
mpg=pd.read_csv('mpg.csv')
import seaborn as sns
df=mpg.groupby('drv', as_index=False).agg(n=('drv', 'count'))
sns.barplot(data=df, x='drv', y='n')
또는
sns.countplot(data=mpg, x='drv')
+ 막대 정렬하기
sns.barplot(data=df, x='drv', order=['4','f','r']) 또는
sns.barplot(data=df, x='drv', order= mpg['drv'].value_counts().index)
결과 사진

참고로 둘의 결과 사진은 순서가 달라진다.
groupby를 사용한 경우 알파벳 순서로 정렬되어 4->f->r이고,
countplot는 입력된 순서인 f->4->r 순서로 정렬된다.
( 입력된 순서는 mpg['drv'].unique()로 확인할 수 있다.)
4. 선 그래프 - 시간에 따라 달라지는 데이터 표현하기
소스 코드(기본 그래프)
import pandas as pd
import seaborn as sns
eco = pd.read_csv('economics.csv')
sns.lineplot(data=eco, x='date', y='unemploy')
결과 사진

소스 코드(연도 표시)
import pandas as pd
import seaborn as sns
eco = pd.read_csv('economics.csv')
#datetime64 형태로 변환하여 date2에 저장
eco['date2']=pd.to_datetime(eco['date'])
#연도 추출
eco['year']=eco['date2'].dt.year
sns.lineplot(data=eco, x='year', y='unemploy')
+ 신뢰구간 제거
sns.lineplot(data=eco, x='year', y='unemploy', ci=None)
결과 사진

5. 상자 그림 - 집단 간 분포 차이 표현하기
소스 코드(기본)
import pandas as pd
import seaborn as sns
eco = pd.read_csv('economics.csv')
sns.boxplot(data=mpg, x='drv', y='hwy')
결과 사진

6. 마무리 정리
sns.scatterplot() : 산점도
sns.barplot() : 막대 그래프 - 요역표 활용
sns.countplot() : 빈도 막대 그래프 - 원자료 활용
sns.lineplot() : 선 그래프
sns.boxplot() : 상자 그림
'프로그래밍 > 파이썬' 카테고리의 다른 글
데이터 분석 - 텍스트 마이닝(대통령 연설,기사 댓글) (6) | 2023.01.14 |
---|---|
데이터 분석 - 실전 데이터 분석(한국복지패널 데이터) (5) | 2023.01.13 |
데이터 분석 - 데이터 정제(결측치 이상치 제거, 대체) (3) | 2023.01.11 |
데이터 분석-데이터 전처리 및 가공(feat. pandas) (3) | 2023.01.10 |
[Python] 데이터 분석 기초(pandas, numpy, 파생변수) (7) | 2023.01.08 |