• 씨본 불러오기
import seaborn as sns

 

 

 

기본 그래프

Seaborn의 가장 큰 특징은 hue 매개변수에 범주형 열을 지정해 색깔을 구분해 볼 수 있다는 것

Histogram

  • Histogram - 데이터의 분포를 보는 것
  • hue 매개변수를 사용하여 구분 기준이 되는 범주형 열을 지정할수도 있음
sns.histplot(x='GRE', data=admission, bins=16, ec='k')
bins는 막대기 개수, ec는 엣지 컬러(막대기 테두리)
plt.show()

→ 히스토그램은 빈즈를 제어할 수 있다

sns.histplot(x='GRE', hue='ADMIT', data=admission, bins=16, ec='k')
plt.show()

막강한 능력 = hue = 겹쳐서 다른 그래프도 같이 보여준다

중간색은 누적 막대 아님. 그래프가 겹쳐진것

 

 

 

 

Density Plot

  • kdeplot() 함수는 단일 열 또는 두 열의 데이터 분포를 Density Plot으로 표시

커널밀도추정(KDE, Kernel Density Estimation)

  • 그래프 아래의 면적이 1이 됩니다.
sns.kdeplot(x='GRE', data=admission, fill=True, bw_adjust=1)# bw_adjust=1(기본값)
fill=True는 그래프 안의 색 채우는거
plt.show()

 

히스토그램은 빈즈에 따라 모양이 달라지지만 KDE 플롯은 모양이 달라지지 않음

  • common_norm=False를 지정하면 그래프 각각의 면적이 1이 된다(각각의 면적이 1)
  • common_norm=True를 지정하면 두 그래프 면적의 합이 1이 된다

두 그래프 면적의 합을 1로 두면 두 그래프의 비율을 대강적으로 볼 수 있음

  • 마찬가지로 hue로 겹쳐서 볼 수 있음

 

histplot() 함수에 kde=True 옵션을 추가하면 히스토그램과 KDE 곡선을 같이 볼 수 있음

sns.histplot(x='GRE', hue='ADMIT', data=admission, bins=16, ec='k', kde=True)
plt.show()

 

 

 

 

 

 

Box Plot

  • boxplot() 함수는 단일 열나 여러 열의 분포를 Box Plot으로 표시
  • boxplot() 함수는 x와 y 매개변수중 하나를 사용하여 열을 지정
  • hue 매개변수를 사용하여 구분 기준이 되는 범주형 열을 지정할 수 있음

q3 = admission['GRE'].describe()['75%']
q1 = admission['GRE'].describe()['25%']
iqr = q3 - q1

sns.boxplot(y='GRE', data=admission)
plt.axhline(q3 + iqr * 1.5, color='r', linestyle=':')
plt.axhline(q1 - iqr * 1.5, color='r', linestyle=':')
plt.show()
  • GRE 열의 데이터 분포를 ADMIT 열을 기준으로 구분해 확인해보자
  • x 축에 구분 기준이 되는 열을 지정
sns.boxplot(y='GRE', x='ADMIT', data=admission)
plt.show()

데이터에 o 이거는 이상치 박스플롯은 열의 분포와 이상치(Outlier)를 시각적으로 탐색할 수 있음

x 축에 대상 열을 지정하면 가로 형태로 표시할 수 있음

sns.boxplot(x='GRE', data=admission)
plt.show()
sns.boxplot(x='GRE', y='ADMIT', hue='RESEARCH', data=admission, orient='h')
plt.show()

 

 

 

 

고급 그래프도 있지만 잘 쓰지 않는 것

코랩 데이터 분석에서 시각화 라이브러리 씨본에 설명 더 있고 나중에 한번 정리만 해두자

그 중에 강사님이 언급(간단히 설명)하신 그래프는

Joint Plot

  • 산점도와 히스토그램이나 KDE 같이 볼 수 있음

sns.jointplot(x='GRE', y='GPA', data=admission)
plt.show()

 

 

Pair plot은 다 그려줌

Count Plot (장래 강사님 페이보릿)

  • countplot() 함수는 범주형 열의 빈도를 막대 그래프로 시각화하는 함수
  • 범줏값이 몇 개씩 포함되어 있는지 확인 가능
  • hue 매개변수를 사용하여 특정 범주형 열을 기준으로 구분해 표시할 수 있음
sns.countplot(x='ADMIT', data=admission)
plt.show()

 

 

 

 

Bar Plot

  • barplot() 함수는 범주형 열에 대한 막대 그래프를 그리는 함수
  • barplot() 함수는 데이터를 추정하고 오차 막대를 표시
  • 오차 막대는 각 범주의 평균과 신뢰 구간을 시각화하는 데 사용
  • barplot() 함수는 기본적으로 평균값을 계산하고 오차 막대를 그린다

두 값을 비교할 때 사용 A와 B가 있을 때 각각이 얼마나 차지하고 있는지 확인할 때.

카운트는 몇갠지 카운트를 비교하는거고 바플롯은 평균

기본형
sns.barplot(x='ADMIT', y='GRE', data=admission)
plt.show()
sns.barplot(x='ADMIT', y='GRE', data=admission, estimator=np.mean, 
errorbar=('ci', 95), n_boot=5000) ci는 신뢰구간 
n_boot는 신뢰구간을 구하기 위해 부트스트래핑 할 횟수(1 이상)
plt.show()

동그라미친건 신뢰구간

 

 

Heatmap

  • heatmap() 함수는 두 범주형 열을 집계한 결과를 색의 농도 차이로 표시
  • 이를 위해서 집계(groupby)와 피봇(pivot)을 먼저 만들어 줘야함
  • 여러 범줏값을 갖는 열을 비교할 때 유용
temp1 = admission.groupby(['ADMIT', 'RANK'], as_index=False)['GRE'].mean()
temp2 = temp1.pivot(index='ADMIT', columns='RANK', values='GRE')
display(temp2)

sns.heatmap(temp2, annot=True, fmt='.2f', linewidth=2, cmap='Blues')
, linewidth=2, cmap='Blues' 추가하면 간격을 좀 벌리고 색상 지정 가능
plt.show()

 

 

 

 

 

 

 

+ Recent posts