Seabornを用いたペアプロット(paiaplot)の作り方

Seabornのpairplot関数は、データセット内のペアワイズ(二変量間)の関係をプロットするためのものです。この関数は、数値変数間の相関を視覚的に表現するグリッド形式の図を作成します。本記事では、Seaborn.paiaplotを用いてペアワイズプロットを作成する方法とさまざまなカスタマイズ方法についてご紹介します。

基本的な使い方

import seaborn as sns

# データフレームをロード
data = sns.load_dataset("iris")

# pairplotを作成
sns.pairplot(data)

このシンプルなコードで、irisデータセット(seabornが用意しているデモ用データセットの一つでアヤメの花弁に関するデータが格納)の全ての数値変数のペアワイズ関係が次の図のように描画されます。

Seaborn pairplot, 基本的な使い方

主なパラメータ

  • 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)
seaborn pairplot, 出力結果

色分け

hueパラメータを指定することで、特定のカテゴリ変数に基づいてデータポイントを色分けすることができます。

sns.pairplot(penguins, hue="species")
Seaborn pairplot, color, hue

対角線プロットのカスタマイズ

diag_kindパラメータを使用して、対角線上のプロットの種類をカスタマイズできます。例えば、上図と異なり、ヒストグラムを強制的に描画することが可能です。

sns.pairplot(penguins, hue="species", diag_kind="hist")
Seaborn pairplot, diag_kind

プロットの種類

kindパラメータによって、対角線上だけでなく、非対角線上のプロットのスタイルも変更できます。例として、"kde""hist"を使用する方法があります。

# KDEプロット
sns.pairplot(penguins, kind="kde")

# ヒストグラムプロット
sns.pairplot(penguins, kind="hist")
Seaborn pairplot, KDE
Seaborn pairplot, hist

マーカースタイル

markersパラメータを使用して、非対角線プロットのマーカースタイルをカスタマイズできます。これは、hue変数と組み合わせて使用すると便利です。

sns.pairplot(penguins, hue="species", markers=["o", "s", "D"])
Seaborn pairplot, marker

プロットのサイズ調整

個々のサブプロットのサイズは、heightパラメータで制御できます。

sns.pairplot(penguins, height=1.5)
Seaborn pairplot, size

変数の選択

特定の変数だけをプロットしたい場合は、varsx_varsy_varsパラメータを使って指定できます。

sns.pairplot(
    penguins,
    x_vars=["bill_length_mm", "bill_depth_mm", "flipper_length_mm"],
    y_vars=["bill_length_mm", "bill_depth_mm"],
)
Seaborn pairplot, プロット数

下三角行列のプロット

corner=Trueを設定することで、グリッドの下三角部分のみをプロットし、余分な情報を省略できます。

sns.pairplot(penguins, corner=True)
seaborn pairplot, corner

カスタマイズオプション

plot_kwsdiag_kwsパラメータを使用して、非対角線および対角線プロットをさらにカスタマイズできます。

sns.pairplot(
    penguins,
    plot_kws=dict(marker="+", linewidth=1),
    diag_kws=dict(fill=False),
)
seaborn pairplot, カスタマイズ

PairGridのカスタマイズ

pairplot関数はPairGridオブジェクトを返します。これを使って、プロットをさらに微調整することが可能です。

g = sns.pairplot(penguins, diag_kind="kde")
g.map_lower(sns.kdeplot, levels=4, color=".2")
seaborn pairplot, pairgrid

まとめ

seabornを用いてさまざまなペアワイズプロット(pairplot)の作り方を見てきました。データの分析やプレゼンテーションに役立てていただけると幸いです。

上部へスクロール