대표적인 plot들을 소개하겠음..
경향성 표현하는 그래프
라이브러리와 데이터 불러오고, 시각화 위한 세팅하기
import seaborn as sns
sns.set_theme(style='whitegrid')
penguins = sns.load_dataset("penguins").dropna()
penguins
lineplot
- 특정 데이터를 x, y로 표시하여 관계를 확인할 수 있는 선 그래프
- 수치형 지표들 간의 경향을 파악할 때 많이 사용한다
sns.lineplot(data=penguins,
x = 'body_mass_g',
y = 'bill_length_mm',
ci = None, #ci = confidential interval 신뢰구간, 오차범위 표시해줌
hue = "species", #hue는 내가 파악하고자 하는 카테고리별로 다른 색으로 나눠주는 옵션
palette = 'Set2') #색상 선택
palette 종류는 구글에 검색하면 잔뜩 나온다
pointplot
- 특정 수치 데이터를 error bar와 함께 출력해주는 plot
- 수치 데이터를 다양한 각도에서 한 번에 바라보고 싶을 때 사용한다
- 데이터와 error bar를 한 번에 찍어주기 때문에, 살펴보고 싶은 특정 지표들만 사용하는 것이 좋다
sns.pointplot(data=penguins,
x = 'species',
y = 'body_mass_g',
hue = 'sex',
palette = 'winter')
크기 표현하는 그래프
hisplot
- 가장 기본적으로 사용되는 히스토그램을 출력
- 전체 데이터의 특정 구간별 정보를 확인할 때 사용함
- x축에는 관심있는 연속형 변수, y축은 count로 고정된다
import seavborn as sns
sns.hisplot(data=penguins,
x='bill_depth_mm',
bins = 30, #막대기 개수
hue = 'species',
mulitple = 'stack') #누적형으로 그릴 수 있음
barplot
- 말 그대로 막대그래프
- 가로, 세로 두 가지로 모두 출력 가능함
- 히스토그램이랑 다름!
sns.barplot(data=penguins,
x='island',
y='body_mass_g',
hue = 'sex',
palette = 'summer')
countplot
- 범주형 속성을 가지는 데이터들의 히스토그램을 보여준다
- 종류별 count를 보여주는 방법임 >> 한쪽 축은 count로 고정한다
sns.countplot(data=penguins,
x='island')
분포 표현하는 그래프
boxplot
- 통계에서 매우 자주 쓰이는 상자그림
- 데이터의 각 종류별로 사분위 수를 표시해줌
- 특정 데이터의 전체적인 분포를 확인하기에 좋다
- box와 전체 range의 그림을 통해 outlier 찾기 쉽다
sns.boxplot(data=penguins,
x = 'species',
y = 'body_mass_g',
hue = 'sex',
palette = 'Set2')
* 여기서 body mass를 표현할 때는 상자그림이 가로로 퍼져있는게 더 눈에 잘 들어오므로 x, y축을 바꿔준다
*어떤 변수를 어디에 지정하느냐에 따라 한눈에 파악하기 쉽게 만들 수 있고, 시각화를 잘 했다고 말할 수 있음
swarmplot
- 데이터에 대한 분포 자체를 보여준다
- 보통 boxplot과 함께 나타내주면, 평균 근처에 데이터가 얼마나 어떻게 퍼져있는지 모두 확인 가능하다
sns.swarmplot(data=penguins,
x = 'sex',
y = 'flipper_length_mm',
palette = 'winter')
scatterplot
- 산포도
- lineplot과 비슷하게 x, y에 대한 전체적인 분포를 확인할 수 있음
sns.scatterplot(data=penguins,
x = 'bill_length_mm',
y = 'flipper_length_mm',
hue = 'species')
연관성을 표현하는 그래프
heatmap
- 정사각형 그림에 데이터에 대한 정도 차이를 색 차이로 보여준다
- 열화상 카메라로 사물을 찍은 것처럼 정보의 차이를 보여준다
- 통계의 상관관계와 함께 많이 사용된다
- pairplot과 비슷하게 feature간 관계를 시각화할 때 많이 사용한다
*일단, 각 column간 상관관계를 파악하기 위해, correalation matrix를 먼저 만들자
penguins.corr()
*한 변수가 증가할 때, 다른 한 변수도 증가하면(정비례) 양의 상관관계, +1로 갈수록 강한 관계
*한 변수가 증가할 때, 다른 한 변수가 감소하면(반비례) 음의 상관관계, -1로 갈수록 강한 관계
*한 변수가 증가할 때, 다른 한 변수가 증가도 하고 감소도 하면서 왔다갔다하거나 아예 변화가 없으면(패턴X) 관계가 없다고 할 수 있고, 0으로 표현
sns.heatmap(data=penguins.corr(),
annot = True, #annot은 annotation으로 수치값을 같이 나타내줄 때 사용
cmap = 'Greens') #cmap은 palette처럼 사용됌
*heatmap은 색이 다양한 것보다, 같은 색 범위 내에서 그라데이션처럼 표현해주는게 좋음
*plot의 종류에 따라 적절한 palette, cmap을 선택해야 보는 사람도 파악하기 쉽고, 말하고자 하는 바를 잘 나타낼 수 있음 >> 시각화에서 가장 중요한 것
pairplot
- 산점도 행렬
#기본 2차원 산점도 행렬
sns.pairplot(data = penguins)
#corner 옵션 추가해서 행렬의 절반만 그리기
sns.pairplot(data=penguins, corner=True)
#3차원 이상으로 그리려면 hue옵션 추가하기
sns.pairplot(data=penguins, hue='species')
'Python > seaborn, matplotlib' 카테고리의 다른 글
matplotlib, seaborn에서 한글 폰트 사용하기 (0) | 2023.05.11 |
---|---|
matplotlib.pylot으로 그래프 그리기 (0) | 2023.04.15 |
plotly로 interactive chart 만들기 (0) | 2023.04.06 |
데이터 시각화/Data Visualization (0) | 2023.04.05 |