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)の作り方を見てきました。データの分析やプレゼンテーションに役立てていただけると幸いです。
もし、
「プログラミングを体系的に学びたい」
「エンジニア転職を頑張りたい」
「独学に限界を感じてきた...」
「コミュニティで仲間と共に学びたい」
などと感じられたら、ぜひ検討してみてください。
まずは様子見...という方は、公式LINEにぜひご登録下さい。
学習や転職ノウハウに関する豪華特典11個を無料配布しています!
LINE紹介ページで特典を確認する


