Skip to content

SeabornのDisplotを使ったカスタム分布プロットの作成方法

Updated on

データの可視化はデータ分析や機械学習の重要な要素です。それにより、複雑なデータセットを理解し、洞察を得ることができます。Pythonでのデータ可視化のための最も人気のあるライブラリの1つはSeabornであり、その中でも最も強力なツールの1つに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の違い

distplotdisplotの両方は、データの分布を可視化するために使用されるSeabornの関数ですが、いくつかの主な違いがあります。distplot関数は、Seabornの以前のバージョンではヒストグラムやKDEプロットを作成するために主に使用されていました。しかし、最近のバージョンのSeabornではdistplotは廃止され、displotが分布プロットを作成するための推奨される関数になっています。

displot関数は、distplotよりも柔軟で強力です。単変量データと二変量データの両方を処理することができ、ヒストグラム、KDEプロット、ECDFプロットなど、さまざまなプロットを作成することができます。さらに、displotFacetGridの使用をサポートしており、複数のサブプロットを1つの図に作成することができます。

Seabornは廃止されていますか?

いいえ、Seabornは廃止されていません。ただし、distplotなど、Seaborn内の一部の関数は最近のバージョンで廃止されています。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の最も強力な機能の1つは、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()
 
### 例5:KDEプロットのカスタマイズ
 
KDEプロットを使用する場合、`kde_kws`パラメータを使用して外観をカスタマイズすることができます。たとえば、より太い線と異なる色でKDEプロットを作成するには、次のようにします。
 
```python
sns.displot(data=penguins, x="flipper_length_mm", kde=True, kde_kws={"color": "green", "lw": 3})
plt.show()

複数列でのSeaborn Displot

Seabornのdisplot関数の最も強力な機能の1つは、複数のデータ列を扱う能力です。これにより、データの興味深いパターンや関係性を明らかにすることができる複雑な可視化を作成することができます。

例6:2つの変数を使用したDisplot

2つの変数を使用してdisplotを作成するには、xパラメータとyパラメータの両方を指定します。たとえば、flipper_length_mmbody_mass_gの変数の2変数ヒストグラムを作成するには、次のようにします。

sns.displot(data=penguins, x="flipper_length_mm", y="body_mass_g")
plt.show()

これにより、各ビン内のデータ点の数を表す色の強度が異なる2Dヒストグラムが作成されます。

例7:Hueを使用したDisplot

hueパラメータを使用して、別の変数でデータをグループ化することもできます。たとえば、speciesでグループ化されたflipper_length_mmのヒストグラムを作成するには、次のようにします。

sns.displot(data=penguins, x="flipper_length_mm", hue="species")
plt.show()

これにより、各種の別々のヒストグラムが作成され、各種には異なる色が使用されます。

よくある質問

  1. Seabornのdisplot関数とは何ですか?

Seabornのdisplot関数は、データの分布を可視化するために設計された柔軟な関数です。ヒストグラム、KDEプロット、ECDFプロットなど、さまざまな分布プロットを作成することができます。

  1. displotの外観をカスタマイズする方法はありますか?

displotの外観をカスタマイズするには、さまざまなパラメータを使用することができます。プロットの色にはcolor、ビンのサイズと範囲にはbinwidthbinrange、KDEプロットの外観にはkde_kwsなどがあります。

  1. displotを複数列のデータで使用することはできますか?

はい、displotは複数のデータ列を扱うことができます。xパラメータとyパラメータの両方を指定して2変数ヒストグラムを作成するか、hueパラメータを使用して別の変数でデータをグループ化することができます。