Seabornのpairplot
関数は、データセット内のペアワイズ(二変量間)の関係をプロットするためのものです。この関数は、数値変数間の相関を視覚的に表現するグリッド形式の図を作成します。本記事では、Seaborn.paiaplotを用いてペアワイズプロットを作成する方法とさまざまなカスタマイズ方法についてご紹介します。
基本的な使い方
import seaborn as sns
# データフレームをロード
data = sns.load_dataset("iris")
# pairplotを作成
sns.pairplot(data)
このシンプルなコードで、iris
データセット(seabornが用意しているデモ用データセットの一つでアヤメの花弁に関するデータが格納)の全ての数値変数のペアワイズ関係が次の図のように描画されます。
主なパラメータ
data
: pandasのDataFrame。各列が変数で、各行が観測値です。hue
: プロットのアスペクト(例えば、色)を異なる色にマッピングするための変数名。hue_order
:hue
変数のパレット内のレベルの順序。palette
:hue
変数のマッピングに使う色セット。辞書かseabornのカラーパレット。vars
: プロットに使用する変数のリスト。指定しない場合は、数値データ型の全ての列が使用されます。kind
: プロットの種類(’scatter’, ‘kde’, ‘hist’, ‘reg’)。diag_kind
: 対角線上のサブプロットの種類。hue
が使用されるかどうかに基づいて自動的に選択されることもあります。height
&aspect
: 各ファセットの高さ(インチ)とアスペクト比(アスペクト * 高さ = 各ファセットの幅(インチ))。
返り値
grid
: さらなるカスタマイズのためのPairGrid
インスタンスを返します。
この関数はデータの探索的分析に非常に便利で、データセット内の変数間の関係を素早く把握することができます。また、PairGrid
を直接使用することで、さらに柔軟なカスタマイズが可能です。
Seabornのpairplot
関数を使って、データセットのペアワイズ関係を視覚化する方法についてのチュートリアルを作成します。このチュートリアルでは、ペンギンのデータセットを例に、さまざまなカスタマイズオプションを紹介します。
pairplotのさまざまなカスタマイズ方法
まずは最もシンプルなpairplot
の使い方から始めましょう。ここからはペンギンに関するデータセットを用いてチュートリアルを作成します。以下のコードは、各ペアの変数に対して散布図を、対角線上にはヒストグラムを描画します。
import seaborn as sns
# データセットをロード
penguins = sns.load_dataset("penguins")
# pairplotを描画
sns.pairplot(penguins)
色分け
hue
パラメータを指定することで、特定のカテゴリ変数に基づいてデータポイントを色分けすることができます。
sns.pairplot(penguins, hue="species")
対角線プロットのカスタマイズ
diag_kind
パラメータを使用して、対角線上のプロットの種類をカスタマイズできます。例えば、上図と異なり、ヒストグラムを強制的に描画することが可能です。
sns.pairplot(penguins, hue="species", diag_kind="hist")
プロットの種類
kind
パラメータによって、対角線上だけでなく、非対角線上のプロットのスタイルも変更できます。例として、"kde"
や"hist"
を使用する方法があります。
# KDEプロット
sns.pairplot(penguins, kind="kde")
# ヒストグラムプロット
sns.pairplot(penguins, kind="hist")
マーカースタイル
markers
パラメータを使用して、非対角線プロットのマーカースタイルをカスタマイズできます。これは、hue
変数と組み合わせて使用すると便利です。
sns.pairplot(penguins, hue="species", markers=["o", "s", "D"])
プロットのサイズ調整
個々のサブプロットのサイズは、height
パラメータで制御できます。
sns.pairplot(penguins, height=1.5)
変数の選択
特定の変数だけをプロットしたい場合は、vars
、x_vars
、y_vars
パラメータを使って指定できます。
sns.pairplot(
penguins,
x_vars=["bill_length_mm", "bill_depth_mm", "flipper_length_mm"],
y_vars=["bill_length_mm", "bill_depth_mm"],
)
下三角行列のプロット
corner=True
を設定することで、グリッドの下三角部分のみをプロットし、余分な情報を省略できます。
sns.pairplot(penguins, corner=True)
カスタマイズオプション
plot_kws
とdiag_kws
パラメータを使用して、非対角線および対角線プロットをさらにカスタマイズできます。
sns.pairplot(
penguins,
plot_kws=dict(marker="+", linewidth=1),
diag_kws=dict(fill=False),
)
PairGridのカスタマイズ
pairplot
関数はPairGrid
オブジェクトを返します。これを使って、プロットをさらに微調整することが可能です。
g = sns.pairplot(penguins, diag_kind="kde")
g.map_lower(sns.kdeplot, levels=4, color=".2")
まとめ
seabornを用いてさまざまなペアワイズプロット(pairplot)の作り方を見てきました。データの分析やプレゼンテーションに役立てていただけると幸いです。