Edited at

seabornペアプロットのない人生は、きっとつまらない。


はじめに

タイトルは以下の記事を読んで、即活用させていただきました。

https://qiita.com/YumaInaura/items/0d8427bfe2d7be476d0d

記事の中身はseabornのペアプロットの使い方をまとめたものです。

※seaborn 0.9.0

【参考】

https://seaborn.pydata.org/generated/seaborn.pairplot.html


seabornのペアプロットの使い方

定番のirisを使っていきます。


script.ipynb

import pandas as pd

seaborn as sns

df = sns.load_dataset("iris")
print(df.head())
print(df.dtypes)
print(df["species"].value_counts())


sepal_length sepal_width petal_length petal_width species

0 5.1 3.5 1.4 0.2 setosa

1 4.9 3.0 1.4 0.2 setosa

2 4.7 3.2 1.3 0.2 setosa

3 4.6 3.1 1.5 0.2 setosa

4 5.0 3.6 1.4 0.2 setosa

sepal_length float64

sepal_width float64

petal_length float64

petal_width float64

species object

dtype: object

virginica 50

setosa 50

versicolor 50

Name: species, dtype: int64


基本


script.ipynb

%matplotlib inline

pg = sns.pairplot(df, # 入力データ
hue="species" # 種別
)

pairplot_1.png


種別の順番指定 : hue_order


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue="species", # 種別
hue_order=['virginica', 'versicolor', 'setosa'] # 種別の順番指定
)

pairplot_2.png


カラーパレットの指定 : palette

カラーパレットの指定方法については以下のURLに詳細がある。

https://matplotlib.org/users/colormaps.html


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
palette='Greys' # カラーパレットの指定
)

pairplot_3.png


軸に使用するカラムの指定 : vars


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
vars=['sepal_length','sepal_width'] # 軸に使用するカラムの指定
)

pairplot_4.png


X軸,Y軸ごとに使用するカラムの指定 : x_vars , y_vars


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
x_vars=["sepal_width", "sepal_length"], # x軸のカラム
y_vars=["petal_width", "petal_length"] # y軸のカラム
)

pairplot_5.png


対角の設定 : diag_kind

‘auto’, ‘hist’, ‘kde’の3つの内から指定できる。

※デフォルト(auto)は何依存なのかわかんない。


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
diag_kind="auto"
)

pairplot_6.png


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
diag_kind="hist"
)

pairplot_7.png


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
diag_kind="kde"
)

pairplot_8.png


プロットの種類 : kind

‘scatter’, ‘reg’から選択可能


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
kind="scatter"
)

pairplot_9.png


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
kind="reg"
)

pairplot_10.png


マーカー指定 : markers

マーカー指定についての詳細は以下を参照

https://matplotlib.org/api/markers_api.html


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
markers="^"
)

pairplot_11.png


縦幅、横幅の調節 : height , aspect


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
height=2,
aspect=2
)

pairplot_12.png


欠損値の排除 : dropna


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
dropna=True
)

pairplot_13.png


plot_kws , diag_kws , grid_kws

以下のURLを参考に、PairGridのオプションを設定することでより細かい指定が可能となります。

※こんなん、めっちゃこだわり強い人向けやんなぁ。。。

https://seaborn.pydata.org/generated/seaborn.PairGrid.html#seaborn.PairGrid


script.ipynb

pg = sns.pairplot(df, # 入力データ

hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
plot_kws=dict(s=50, edgecolor="b", linewidth=1),
diag_kws=dict(shade=False)
)

pairplot_14.png


まとめ

no seaborn , no life