Seaborn의 displot을 사용하여 사용자 정의 분포 그래프 만들기
Published on
데이터 시각화는 데이터 분석 및 기계 학습의 중요한 측면입니다. 복잡한 데이터 세트를 이해하고 그 중에서 통찰력을 얻을 수 있도록 도와줍니다. 파이썬에서 데이터 시각화를 위한 가장 인기있는 라이브러리 중 하나인 Seaborn의 가장 강력한 도구 중 하나는 displot
함수입니다. 이 튜토리얼에서는 파이썬의 Seaborn displot
함수를 사용하여 분포 그래프를 생성하고 사용자 정의하는 방법을 안내합니다.
Seaborn의 displot
은 데이터 분포를 시각화하는 다양한 종류의 그래프를 생성할 수 있는 다재다능한 함수입니다. 이 그래프들에는 히스토그램, KDE 그래프 및 ECDF 그래프가 포함됩니다. 이는 단변량 및 이변량 데이터 모두를 처리할 수 있는 유연하고 강력한 도구이며, 어떤 데이터 분석가의 도구상 필수적입니다. 경험이 있는 데이터 과학자이든 막 시작하는 초보자이든, 효과적으로 displot
을 사용하는 법을 이해하면 데이터 시각화 기술을 크게 향상시킬 수 있습니다.
Seaborn에서의 Displot이란?
Seaborn의 displot
은 데이터의 분포를 시각화하기 위해 설계된 함수입니다. 이는 히스토그램, KDE 그래프 및 ECDF 그래프를 포함한 다양한 종류의 분포 그래프를 생성할 수 있는 유연한 함수입니다. displot
함수는 Seaborn의 relational
모듈의 일부로, 변수 간의 통계적 관계를 시각화하기 위해 설계되었습니다.
displot
의 기본 구문은 다음과 같습니다:
seaborn.displot(data, x=None, y=None, hue=None, row=None, col=None, weights=None, kind='hist', rug=False, rug_kws=None, log_scale=None, legend=True, palette=None, hue_order=None, hue_norm=None, color=None, col_wrap=None, row_order=None, col_order=None, height=5, aspect=1, facet_kws=None, **kwargs)
displot
함수는 여러 인수를 취하여 그래프의 외관과 동작을 사용자 정의할 수 있습니다. 예를 들어, 그래프의 종류(히스토그램, KDE 또는 ECDF), 플롯할 변수(x 및 y), 색상 그룹화에 사용할 변수(hue) 등을 지정할 수 있습니다.
Distplot과 Displot의 차이점
distplot
과 displot
은 모두 데이터 분포를 시각화하기 위해 사용되는 Seaborn 함수입니다. 그러나 그들 사이에는 몇 가지 주요한 차이점이 있습니다. distplot
함수는 이전 버전의 Seaborn에서 히스토그램 및 KDE 그래프를 만드는 데 사용되는 주요 함수였습니다. 그러나 최근 버전의 Seaborn에서는 distplot
이 폐기되었고, 분포 그래프를 만들기 위해 이제 displot
이 권장되는 함수로 대체되었습니다.
displot
함수는 distplot
보다 유연하고 강력합니다. 단변량 및 이변량 데이터를 처리할 수 있으며, 히스토그램, KDE 그래프, ECDF 그래프 등 다양한 종류의 그래프를 생성할 수 있습니다. 게다가, displot
은 FacetGrid
의 사용을 지원합니다. 이를 통해 단일 그림에 여러 하위 그림을 생성할 수 있습니다.
Seaborn이 폐기되었나요?
아니요, Seaborn은 폐기되지 않았습니다. 그러나 최근 버전의 Seaborn에서는 distplot
과 같은 일부 함수가 폐기되었습니다. displot
함수가 이제 Seaborn에서 분포 그래프를 만들기 위한 권장 함수입니다. 이는 distplot
보다 유연하고 강력하며, Seaborn의 relational
모듈과 잘 작동하도록 설계되었습니다.
Seaborn Displot 예제
displot
을 사용하는 방법을 더 잘 이해하기 위해 몇 가지 예제를 살펴봅시다. 먼저 필요한 라이브러리를 가져오고 데이터셋을 로드하는 방법을 알아봅시다:
import seaborn as sns
import matplotlib.pyplot as plt
## 펭귄 데이터셋 로드
penguins = sns.load_dataset("penguins")
예제 1: 기본 히스토그램
displot
의 가장 간단한 사용법은 단일 변수의 히스토그램을 만드는 것입니다. 다음은 펭귄 데이터셋의 flipper_length_mm
변수의 히스토그램을 만드는 방법입니다:
sns.displot(data=penguins, x="flipper_length_mm")
plt.show()
이렇게 하면 자동적으로 막대 크기를 결정하는 기본 히스토그램이 생성됩니다. bins
매개 변수를 사용하여 막대의 수를 사용자 정의할 수 있습니다:
sns.displot(data=penguins, x="flipper_length_mm", bins=20)
plt.show()
예제 2: KDE가 포함된 히스토그램
kde
매개 변수를 사용하여 히스토그램에 Kernel Density Estimate (KDE) 그래프를 추가할 수도 있습니다:
sns.displot(data=penguins, x="flipper_length_mm", kde=True)
plt.show()
KDE 그래프는 히스토그램의 부드러운 버전이며, 데이터 분포의 형태를 더 잘 이해할 수 있습니다.
예제 3: FacetGrid 히스토그램
displot
의 가장 강력한 기능 중 하나는 FacetGrid
를 사용하여 단일 그림에 여러 하위 그림을 생성하는 기능입니다. 다음과 같이 각 펭귄 종에 대해 별도의 하위 그림을 생성할 수 있습니다:
sns.displot(data=penguins, x="flipper_length_mm", col="species")
plt.show()
이렇게 하면 각 펭귄 종마다 별도의 히스토그램이 생성되어 펭귄 종 간의 리핏 길이 분포를 비교할 수 있습니다.
Seaborn Displot 사용자 정의
Seaborn의 displot
함수는 그래프의 외관을 사용자 정의하는 다양한 옵션을 제공합니다. 플롯의 색상, 막대의 크기와 스타일, KDE 플롯의 외관 등을 제어할 수 있습니다.
예제 4: 색상과 막대 사용자 정의
플롯의 색상을 변경하려면 color
매개 변수를 사용할 수 있습니다. 예를 들어, 빨간색 히스토그램을 생성하려면 다음과 같이 할 수 있습니다:
sns.displot(data=penguins, x="flipper_length_mm", color="red")
plt.show()
binwidth
및 binrange
매개 변수를 사용하여 막대의 크기와 스타일을 사용자 정의할 수도 있습니다. 예를 들어, 너비가 5이고 범위가 150에서 250인 막대를 가진 히스토그램을 생성하려면 다음과 같이 할 수 있습니다:
sns.displot(data=penguins, x="flipper_length_mm", binwidth=5, binrange=(150, 250)) plt.show()
Example 5: Customizing KDE Plot
If you're using a KDE plot, you can customize its appearance using the kde_kws
parameter. For example, to create a KDE plot with a thicker line and a different color, you can do:
sns.displot(data=penguins, x="flipper_length_mm", kde=True, kde_kws={"color": "green", "lw": 3})
plt.show()
Seaborn Displot with Multiple Columns
One of the most powerful features of Seaborn's displot
function is its ability to handle multiple columns of data. This allows you to create complex visualizations that can reveal interesting patterns and relationships in your data.
Example 6: Displot with Two Variables
To create a displot
with two variables, you can specify both the x
and y
parameters. For example, to create a bivariate histogram of the flipper_length_mm
and body_mass_g
variables, you can do:
sns.displot(data=penguins, x="flipper_length_mm", y="body_mass_g")
plt.show()
This will create a 2D histogram where the color intensity represents the number of data points in each bin.
Example 7: Displot with Hue
You can also use the hue
parameter to group your data by another variable. For example, to create a histogram of flipper_length_mm
grouped by species
, you can do:
sns.displot(data=penguins, x="flipper_length_mm", hue="species")
plt.show()
This will create a separate histogram for each species, with different colors for each species.
Frequently Asked Questions
- What is the
displot
function in Seaborn?
The displot
function in Seaborn is a flexible function designed to visualize the distribution of data. It can create a variety of distribution plots, including histograms, KDE plots, and ECDF plots.
- How can I customize the appearance of my
displot
?
You can customize the appearance of your displot
using various parameters, such as color
for the color of the plot, binwidth
and binrange
for the size and range of the bins, and kde_kws
for the appearance of the KDE plot.
- Can I use
displot
with multiple columns of data?
Yes, displot
can handle multiple columns of data. You can specify both the x
and y
parameters to create a bivariate histogram, or use the hue
parameter to group your data by another variable.