본문 바로가기
파이썬 독학

파이썬 Seaborn 마스터 하기

by 데싸루나 2023. 2. 20.

Seaborn은 파이썬 데이터 시각화 라이브러리로 Matplotlib과 같이 전세계적으로 많이 사용되는 라이브러리입니다. Seaborn설치방법 부터 Seaborn의 장점, 차트 종류별 그리는 방법에 대해 코드 예제와 함께 다뤄보도록 하겠습니다.

Seaborn-파이썬
Seaborn-library

Seabron 이란? 

Seaborn은 파이썬 데이터 시각화 라이브러리 중 하나로, Matplotlib과 더불어 많이 쓰이는 라이브러리입니다. Matplotlib에 대해서도 궁금하시다면 이전 포스팅을 먼저 참고하시면 좋답니다. Matplotlib도 데이터 시각화 라이브러리로 엄청 유명하지만, 만들어진지가 10년도 넘었기 때문에 판다스 데이터프레임을 위해 디자인되지 않았고, 복잡한 시각화 자료는 생성하기 어렵다는 단점이 있습니다. 그에 반해 Seaborn은 좀 더 고차원의 시각화(visualization)가 가능하고 다양한 색상 팔레트와 테마를 지원하기 때문에 더 매력적인 데이터 시각화가 가능하여 데이터 사이언티스트들 사이에서 많이 사용되고 있습니다. 

 

 

Matplotlib vs Seaborn 그래프 비교

Seaborn은 기본적으로 Matplotlib 보다 좀 더 보기 좋은 그래프를 만듭니다. 아래는 별도 스타일을 따로 입히지 않은 default 상태의 Seaborn과 Matplotlib의 Scatter Plot 스타일을 비교하기 위해 만들어 본 것입니다. 

1. Seaborn의 Scatter Plot

Seaborn-scatter plotSea born-line graph
Seaborn-scatter plot , line plot

2. Matplotlib의 Scatter Plot

Matplotlib - Scatter plotMatplotlib-line graph
Matplotlib - Scatter plot, line plot

비슷하지만 미세하게나마 Seaborn의 Scatter Plot이 좀 더 보기 편하고, 신경쓴 Visualization 같지 않은가요? 따로 테마나 스타일을 입히게 되면 Seaborn으로 더 퀄리티 높은 시각화 자료를 만들 수 있습니다. 

 

 

Seaborn 설치 방법

pip를 사용하여 seaborn을 설치할 수 있습니다. 아나콘다를 사용하시는 경우 아래 커맨드를 이용하시면 됩니다.

pip install seaborn
conda install seaborn

Seaborn 차트 종류별로 그려보기

Iris data 이용하여 Seaborn에서 지원하는 차트의 종류별로 그려보았습니다. 예시를 살펴보면 알 수 있듯이 Seaborn은 기본적으로 보기 좋은 그래프를 그려주고 색상도 너무 튀지 않고, 보기좋은 색상을 사용합니다. 그리고 기본 스타일도 어느 정도 퀄리티 있어 보여서 그대로 사용해도 무방할 정도로 훌륭합니다. 

Scatter Plot

위에서도 예시로 보았던 Scatter Plot입니다. 

import seaborn as sns
import matplotlib.pyplot as plt

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a scatter plot
sns.scatterplot(x="sepal_length", y="sepal_width", data=iris)

# Show the plot
plt.show()

Seaborn-Scatter Plot
Seaborn-Scatter Plot

 

 

Line Graph(라인 그래프)

기본적인 라인 그래프입니다. 따로 스타일을 지정하지 않아도 보기 좋게 그려줍니다.

import seaborn as sns
import matplotlib.pyplot as plt

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a line graph
sns.lineplot(x="sepal_length", y="sepal_width", data=iris)

# Show the plot
plt.show()

seaborn - line graph
seaborn - line graph

Bar Plot

기본적인 Bar Plot입니다. 색상을 따로 설정하지 않아도 기본적으로 예쁜 바 그래프를 그려줍니다.

import seaborn as sns
import matplotlib.pyplot as plt

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a bar plot
sns.barplot(x="species", y="petal_length", data=iris)

# Show the plot
plt.show()

Seaborn-bar plot
Seaborn-bar plot

 

 

Histogram(히스토그램)

데이터의 분포를 볼 수 있는 히스토그램을 그릴 수 있습니다.

import seaborn as sns
import matplotlib.pyplot as plt

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a histogram
sns.histplot(data=iris, x="sepal_length")

# Show the plot
plt.show()

seaborn-histogram
seaborn-histogram

KDE plots(Density Plot)

데이터의 Density를 볼 수 있는 KDE Plot을 그릴 수 있습니다.

import seaborn as sns
import matplotlib.pyplot as plt

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a KDE plot
sns.kdeplot(data=iris, x="sepal_length", shade=True)

# Show the plot
plt.show()

seaborn-kde plot
seaborn-kde plot

 

 

Box Plot

데이터의 분포와 outlier가 있는지 여부를 한눈에 확인할 수 있는 Box Plot도 그릴 수 있습니다.

import seaborn as sns
import matplotlib.pyplot as plt

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a box plot
sns.boxplot(x="species", y="petal_length", data=iris)

# Show the plot
plt.show()

seaborn-box plot
seaborn-box plot

Pair Plot

Seaborn이 가진 강력한 장점 중에 하나입니다. Pair Plot은 각각의 속성들 끼리의 상관관계를 분석할 수 있도록 모든 속성들의 조합에 대해 Scatter Plot을 그려주고 서로다른 Class는 다른 색상으로 표시함으로써 직관적으로 데이터를 분석할 수 있도록 도와줍니다.  

import seaborn as sns
import matplotlib.pyplot as plt

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a pair plot
sns.pairplot(data=iris, hue="species")

# Show the plot
plt.show()

 

seaborn- pair plot
seaborn- pair plot

 

 

Facet grids

Facet 그리드는 특정 속성에 대해 class별 나눠서 그래프를 그려보고 싶은 경우 유용하게 사용할 수 있습니다. 그래프를 따로 그릴 필요 없이 한번에 여러개의 그래프를 그릴 수 있어서 편리합니다.

import seaborn as sns
import matplotlib.pyplot as plt

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a facet grid
g = sns.FacetGrid(data=iris, col="species", height=4)
g.map(sns.scatterplot, "sepal_length", "sepal_width")

# Show the plot
plt.show()

seaborn-facet grid
seaborn-facet grid

Joint Plot

X축과 Y축에 해당하는 데이터의 Scatter Plot과 함께 각 축이 나타내는 데이터의 히스토그램까지 함께 표시함으로써 데이터의 분포와 관계를 한눈에 이해하기 쉽도록 해줍니다.

import seaborn as sns

# Load the iris dataset
iris = sns.load_dataset("iris")

# Create a joint plot
sns.jointplot(x="sepal_length", y="sepal_width", data=iris)

# Show the plot
plt.show()

Seaborn-Joint Plot
Seaborn-Joint Plot

 

이번 포스팅에서는 강력판 파이썬 데이터 시각화(Visualization)툴 라이브러리인 Seaborn이 무엇인지, Seaborn이 Matplotlib과 비교했을 때 어떤 장점이 있는지, Seaborn이 지원하는 차트 종류는 무엇이 있는지, 각각 어떻게 그릴 수 있는지 코드예제와 함께 살펴보았습니다. Seaborn을 사용하여 데이터 분석 결과를 효과적으로 시각화해보시기 바랍니다. 오늘은 Seaborn의 기본스타일에 대해서 다뤄봤는데, 다음 포스팅에서는 Seaborn에 스타일과 테마를 입혀보는 방법에 대해서 다뤄보도록 하겠습니다. 

 

댓글