Search

seaborn

대분류
라이브러리
소분류
Python Module
최종 편집 일시
2024/10/27 15:31
생성 일시
2024/07/22 03:49
16 more properties

설명

Python의 데이터 시각화 라이브러리로, Matplotlib을 기반으로 하여 더 고급스럽고 세련된 시각화 기능을 제공 Matplotlib의 기반 위에 구축 Matplotlib 시각화 차트 기리기를 Seaborn이 쉽게 그릴 수 있도록 도와줌

plot 종류

Relational plots
두 변수의 관계를 볼 때
Distribution plots
변수의 데이터 분포 볼 때
Categorical plots
범주형 변수의 집계나 볌주형 변수와 수치형 변수간의 관계를 볼 때

설치

> pip install seaborn
Python
복사

colab 한글 깨짐 방지

실행후에 런타임 다시 시작할 것
import pandas as pd import numpy as np
Python
복사
!apt -qq -y install fonts-nanum > /dev/null import matplotlib.pyplot as plt import matplotlib.font_manager as fm fontpath = '/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf' font_name = fm.FontProperties(fname=fontpath).get_name() fm._rebuild() %config InlineBackend.figure_format = 'retina' plt.rc('font', family=font_name) plt.rcParams['axes.unicode_minus'] = False
Python
복사

기능

기본 플롯 (Basic Plots)

산점도 (Scatter Plot): 두 변수 간의 관계를 시각화
import seaborn as sns import matplotlib.pyplot as plt sns.scatterplot(x='x_variable', y='y_variable', data=df) plt.show()
Python
복사
선 그래프 (Line Plot): 시간에 따른 변화를 시각화
sns.lineplot(x='x_variable', y='y_variable', data=df) plt.show()
Python
복사
히스토그램 (Histogram): 데이터의 분포를 시각화
sns.histplot(data=df, x='variable', bins=30) plt.show()
Python
복사

다양한 플롯 (Advanced Plots)

상자 그림 (Box Plot): 데이터의 분포와 이상치를 시각화
sns.boxplot(x='category', y='value', data=df) plt.show()
Python
복사
히트맵 (Heatmap): 상관관계 행렬이나 다른 2차원 데이터를 시각화
sns.heatmap(data=corr_matrix, annot=True, cmap='coolwarm') plt.show()
Python
복사
페어플롯 (Pair Plot): 데이터의 여러 변수 간 관계를 시각화
sns.pairplot(df) plt.show()
Python
복사

통계적 플롯 (Statistical Plots)

회귀 플롯 (Regression Plot): 두 변수 간의 선형 회귀선을 시각화
sns.regplot(x='x_variable', y='y_variable', data=df) plt.show()
Python
복사
로지스틱 회귀 플롯 (Logistic Regression Plot): 이진 분류 문제의 결과를 시각화
sns.lmplot(x='x_variable', y='y_variable', data=df, logistic=True) plt.show()
Python
복사

범주형 플롯 (Categorical Plots)

카운트 플롯 (Count Plot): 범주형 변수의 각 범주에 대한 빈도수를 시각화
sns.countplot(x='category', data=df) plt.show()
Python
복사
바 플롯 (Bar Plot): 범주형 변수의 평균값을 시각화합니다.
sns.barplot(x='category', y='value', data=df) plt.show()
Python
복사
박스 플롯 (Box Plot): 범주형 변수의 값 분포와 이상치를 시각화
sns.boxplot(x='category', y='value', data=df) plt.show()
Python
복사

테마와 스타일 (Themes and Styles)

Seaborn은 다양한 시각적 스타일과 테마를 제공하여 플롯의 외관을 쉽게 변경할 수 있다.
스타일 설정:
sns.set_style("whitegrid")
Python
복사
팔레트 설정:
sns.set_palette("husl")
Python
복사

팁 Dataset의 seaborn plots

# 데이터 로드 tips = sns.load_dataset("tips")
Python
복사

Relational plots

relplot(kind="scatter") # default
relplot(kind="line")

scatterplot

전체 팁
sns.relplot(data=tips, x="total_bill", y="tip", kind="scatter")
Python
복사
흡연자와 비흡연자 분리
sns.relplot(data=tips, x="total_bill", y="tip", hue="smoker")
Python
복사
점 style 변경
sns.relplot( data=tips, x="total_bill", y="tip", hue="smoker", style="smoker" )
Python
복사
점 style 그룹 지정
sns.relplot( data=tips, x="total_bill", y="tip", hue="smoker", style="time" )
Python
복사
숫자형 데이터일 때
색상의 농도 표현
sns.relplot( data=tips, x="total_bill", y="tip", hue="size", )
Python
복사
점 크기 표현
혼합
sns.relplot( data=tips, x="total_bill", y="tip", hue="size", size="size", sizes=(15, 200) )
Python
복사

lineplot

일부 데이터 세트의 경우 한 변수의 변화를 시간의 함수 또는 유사한 연속 변수로 이해하고자 할 수 있다.
이 상황에서 좋은 선택은 선 그림을 그리는 것이다.

기본

기본 그래프
sns.relplot(data=fmri, x="timepoint", y="signal", kind="line")
Python
복사

기본 동작 해제

seaborn의 기본 동작은 x 평균과 평균 주위의 95% 신뢰 구간을 플로팅하여 각 값에서 여러 측정값을 집계
집계 작업을 끄려면 estimator=None으로 설정
sns.relplot( data=fmri, kind="line", x="timepoint", y="signal", estimator=None )
Python
복사

그룹화

hue로 그룹화
sns.relplot( data=fmri, kind="line", x="timepoint", y="signal", hue="event", )
Python
복사

hue를 이용하여 하위 집합 분석

카테고리 데이터를 hue(색상으로 다르게 표현)를 이용하여 하위 집합으로 분석
sns.relplot( data=fmri, kind="line", x="timepoint", y="signal", hue="region", style="event", )
Python
복사

각 점 포인트

각 지정 점을 표시