이번 포스팅에서는 꼭 알아야 할 Seaborn 그래프 14가지를 소개하고자 합니다. Matplotlib에서 태어난 Seaborn을 사용하면 쉽게 놀라운 시각화를 만들 수 있습니다. (자세한 내용은 https://seaborn.pydata.org/ 참고)
몇 줄의 코드만 있으면 분석과 프레젠테이션에서 모두 사람들을 놀라게 할 걸작이 완성됩니다. 분포, 관계, 범주형 데이터의 핵심에 이르기까지 Seaborn은 데이터 패턴과 인사이트를 얻는 데 도움이 되는 모든 요령을 갖추고 있습니다.
하지만 Seaborn의 정말 훌륭한 부분은 데이터를 플롯하는 데 도움이 되는 것 뿐만 아니라 스토리텔러로 만들어준다는 것입니다. 스타일을 강조하고 Pandas와 부드럽게 통합되어 시각화를 통한 정보 전달에 매우 훌륭한 결과물을 도출합니다.
Customizing Figure Aesthetics
Seaborn은 set_theme() 및 color_palette()를 사용하여 테마와 팔레트로 플롯의 모양을 쉽게 지정할 수 있습니다. 다양한 테마 중에서 선택하거나 직접 만들 수 있습니다.
어두운 테마와 특정 색상 팔레트로 플롯에 전문적인 모양을 제공하려면, 아래와 코드를 사용하면 됩니다.
import seaborn as sns
import matplotlib.pyplot as plt
# 어두운 테마와 사용자 정의 색상 팔레트 설정
sns.set_theme(style="dark", palette="muted")
# 예시 플롯
data = sns.load_dataset("penguins")
sns.histplot(data = data, x = "flipper_length_mm", hue="species")
plt.show()
pairplot
Seaborn의 pairplot을 사용하면 산점도와 히스토그램을 사용하여 데이터 세트에서 두 변수간의 관계를 시각화할 수 있으므로 상관관계와 분포를 이해하는 데 효과적입니다.
사용 사례: Iris 데이터 세트의 다양한 특징 간 관계 분석
import seaborn as sns
# 데이터세트 로드
iris = sns.load_dataset("iris")
# 두 변수 사이의 관계 플롯
sns.pairplot(iris, hue="species")
plt.show()
heatmap
히트맵 기능은 색상 인코딩을 사용하여 행렬, 상관 관계 및 기타 그리드와 같은 데이터 구조를 시각화하는 데 적합합니다. 아래의 예시를 보겠습니다.
import seaborn as sns
import matplotlib.pyplot as plt
# 타이타닉 데이터 셋 로드
titanic = sns.load_dataset("titanic")
# 상관행렬 계산
corr = titanic.corr()
# 히트맵 생성
sns.heatmap(corr, annot = True, cmap = "coolwarm")
plt.show()
lmplot
lmplot을 사용하면 선형 회귀 모델을 적합하고 시각화하여 변수 간의 관계를 쉽게 분석할 수 있습니다.
import seaborn as sns
# 데이터 셋 로드
tips = sns.load_dataset("tips")
# 회귀선형 모델 플롯 생성
sns.lmplot(x = "total_bill", y = "tip", data = tips)
plt.show()
catplot
Seaborn의 catplot은 범주형 데이터를 시각화하는 데 매우 유용하며, 상자 그림, 막대 그림, 스트립 그림과 같은 다양한 종류의 그림을 지원합니다.
import seaborn as sns
# 데이터 셋 로드
tips = sns.load_dataset("tips")
# 범주형 데이터 플롯 생성
sns.catplot(x = "day", y = "total_bill", kind = "box", data = tips)
plt.show()
FacetGrid
FacetGrid를 사용하면 데이터 하위 집합을 기반으로 다중 플롯 그리드를 만들 수 있으므로 범주별로 데이터를 분할하는 데 효과적입니다.
import seaborn as sns
# 데이터 셋 로드
penguins = sns.load_dataset("penguins")
# 그리드 플롯 생성
g = sns.FacetGrid(penguins, col = "species")
g.map(sns.histplot, "flipper_length_mm")
plt.show()
distplot and histplot
distplot(더 이상 사용되지 않음, histplot 및 kdeplot 사용)은 히스토그램과 커널 밀도 추정치를 결합하여 데이터 분포에 대한 명확한 그림을 제공합니다.
import seaborn as sns
# 데이터셋 로드
iris = sns.load_dataset("iris")
# 변수 분포 플롯 생성
sns.histplot(iris['petal_length'], kde = True)
plt.show()
lineplot
라인 플롯 함수는 시계열 데이터를 시각화하고 시간에 따른 추세와 패턴을 포착하는 데 적합합니다.
import seaborn as sns
import pandas as pd
# 샘플 데이터 생성
data = pd.DataFrame({
'month': pd.date_range(start = '2021-01', periods = 12, freq = 'M'),
'temperature': [5, 7, 9, 13, 16, 20, 23, 22, 19, 14, 10, 6]
})
# 선 플롯 생성
sns.lineplot(x = "month", y = "temperature", data = data)
plt.show()
jointplot
jointplot을 사용하면 두 변수 사이의 관계와 그 주변 분포를 시각화할 수 있습니다.
import seaborn as sns
# 데이터 셋 로드
iris = sns.load_dataset("iris")
# joint plot 생성
sns.jointplot(x = "petal_length", y = "petal_width", data = iris, kind = "scatter")
plt.show()
violinplot
바이올린 플롯 함수는 상자 그림과 KDE 그림을 결합하여 분포에 대한 더욱 자세한 보기를 제공합니다.
import seaborn as sns
# 데이터 셋 로드
tips = sns.load_dataset("tips")
# violin plot 생성
sns.violinplot(x = "day", y = "total_bill", data = tips)
plt.show()
legend
Seaborn을 사용하면 범례를 쉽게 사용자 지정하여 플롯을 더욱 유익하고 아름답게 꾸밀 수 있습니다.
import seaborn as sns
# 데이터 셋 로드
iris = sns.load_dataset("iris")
# 사용자 지정 범례를 가지는 산점도
sns.scatterplot(x = "petal_length", y = "petal_width", hue = "species", data = iris)
plt.legend(title = "Iris Species", loc = "upper left")
plt.show()
barplot
barplot 함수는 그룹화된 데이터를 처리하고 요약 통계를 즉석에서 계산할 수 있어 빠르게 비교하기에 적합합니다.
import seaborn as sns
# 데이터 셋 로드
tips = sns.load_dataset("tips")
# 막대 플롯 생성
sns.barplot(x = "day", y = "total_bill", data = tips, estimator = sum)
plt.show()
pairplot
pairplot을 사용하면 데이터 세트에 있는 모든 숫자형 변수 간의 관계를 쉽게 탐색하여 두 변수별 상관관계에 대한 포괄적인 보기를 얻을 수 있습니다.
import seaborn as sns
# 데이터 셋 로드
titanic = sns.load_dataset("titanic")
# pair plot 생성
sns.pairplot(titanic.dropna())
plt.show()
subplots_adjust
때때로 기본 서브플롯 설정은 플롯을 겹치게 만들 수 있습니다. subplots_adjust를 사용하여 간격을 미세 조정하여 겹치는 현상을 조정할 수 있습니다.
import seaborn as sns
import matplotlib.pyplot as plt
# 데이터 셋 로드
iris = sns.load_dataset("iris")
# 플롯 그리드 생성
sns.pairplot(iris, hue = "species")
# ubplot spacing 조정
plt.subplots_adjust(top = 0.9)
plt.show()
결론
지금까지 파이썬 시각화 라이브러리 seaborn 에서 가장 자주 사용하는 14개 Seaborn 그래프에 대해서 알아보았습니다.
데이터 시각화는 데이터 분석의 중요한 단계로, 특히 대량의 데이터를 다룰 때 그 유용성이 극대화됩니다. 적절한 시각화를 통해 데이터의 상관관계, 분포, 변화를 쉽게 이해할 수 있으며, 비전문가들도 데이터를 직관적으로 파악할 수 있게 도와줍니다.
이번 포스팅에서 알아본 14개의 데이터 시각화 방법이 많은 도움이 되었으면 합니다.
감사합니다.