Python
機械学習
DeepLearning
matplotlib
seaborn

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