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の違い
distplot
とdisplot
の両方は、データの分布を可視化するために使用されるSeabornの関数ですが、いくつかの主な違いがあります。distplot
関数は、Seabornの以前のバージョンではヒストグラムやKDEプロットを作成するために主に使用されていました。しかし、最近のバージョンのSeabornではdistplot
は廃止され、displot
が分布プロットを作成するための推奨される関数になっています。
displot
関数は、distplot
よりも柔軟で強力です。単変量データと二変量データの両方を処理することができ、ヒストグラム、KDEプロット、ECDFプロットなど、さまざまなプロットを作成することができます。さらに、displot
はFacetGrid
の使用をサポートしており、複数のサブプロットを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_mm
とbody_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()
これにより、各種の別々のヒストグラムが作成され、各種には異なる色が使用されます。
よくある質問
- Seabornの
displot
関数とは何ですか?
Seabornのdisplot
関数は、データの分布を可視化するために設計された柔軟な関数です。ヒストグラム、KDEプロット、ECDFプロットなど、さまざまな分布プロットを作成することができます。
displot
の外観をカスタマイズする方法はありますか?
displot
の外観をカスタマイズするには、さまざまなパラメータを使用することができます。プロットの色にはcolor
、ビンのサイズと範囲にはbinwidth
とbinrange
、KDEプロットの外観にはkde_kws
などがあります。
displot
を複数列のデータで使用することはできますか?
はい、displot
は複数のデータ列を扱うことができます。x
パラメータとy
パラメータの両方を指定して2変数ヒストグラムを作成するか、hue
パラメータを使用して別の変数でデータをグループ化することができます。