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

# はじめに
タイトルは以下の記事を読んで、即活用させていただきました。
https://qiita.com/YumaInaura/items/0d8427bfe2d7be476d0d

記事の中身はseabornのペアプロットの使い方をまとめたものです。
※seaborn 0.9.0
【参考】
https://seaborn.pydata.org/generated/seaborn.pairplot.html

# seabornのペアプロットの使い方
定番のirisを使っていきます。

```python: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
## 基本

```python:script.ipynb
%matplotlib inline
pg = sns.pairplot(df, # 入力データ
                  hue="species" # 種別
                 )
```
![pairplot_1.png](https://qiita-image-store.s3.amazonaws.com/0/273349/7188bc70-edeb-5897-c044-9844aeb4bfb4.png)

## 種別の順番指定 : hue_order
```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue="species", # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'] # 種別の順番指定
                 )
```
![pairplot_2.png](https://qiita-image-store.s3.amazonaws.com/0/273349/206b996c-4c9f-7d15-c642-d17f23bca30e.png)

## カラーパレットの指定 : palette
カラーパレットの指定方法については以下のURLに詳細がある。 
https://matplotlib.org/users/colormaps.html

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  palette='Greys' #  カラーパレットの指定
                 )
```
![pairplot_3.png](https://qiita-image-store.s3.amazonaws.com/0/273349/4cb415c4-8a6f-ffd3-0829-a2ccc83cea85.png)

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

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  vars=['sepal_length','sepal_width'] # 軸に使用するカラムの指定
                 )
```
![pairplot_4.png](https://qiita-image-store.s3.amazonaws.com/0/273349/fbc53f72-a9b6-4951-9c01-35128e8cfb65.png)

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

```python: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](https://qiita-image-store.s3.amazonaws.com/0/273349/4cda7f00-5e29-bc01-6405-1de4a6117b88.png)

## 対角の設定 : diag_kind
‘auto’, ‘hist’, ‘kde’の３つの内から指定できる。
※デフォルト(auto)は何依存なのかわかんない。

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  diag_kind="auto"
                 )
```
![pairplot_6.png](https://qiita-image-store.s3.amazonaws.com/0/273349/011b9ea8-2ab9-38c1-ada3-58760a82ceb7.png)

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  diag_kind="hist"
                 )
```
![pairplot_7.png](https://qiita-image-store.s3.amazonaws.com/0/273349/988c6c7f-cebb-4c55-46d0-1f4fbd67eb5b.png)

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  diag_kind="kde"
                 )
```

![pairplot_8.png](https://qiita-image-store.s3.amazonaws.com/0/273349/7b0f0753-1dd8-4f75-5fa9-382c2d30ee1d.png)

## プロットの種類 : kind
‘scatter’, ‘reg’から選択可能

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  kind="scatter"
                 )
```
![pairplot_9.png](https://qiita-image-store.s3.amazonaws.com/0/273349/f0e52fb0-58a8-cc2d-fddb-ae34c6421ede.png)

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  kind="reg"
                 )
```
![pairplot_10.png](https://qiita-image-store.s3.amazonaws.com/0/273349/89d97b45-f8e9-6a62-ba69-c2cafcbb59f3.png)

## マーカー指定 : markers
マーカー指定についての詳細は以下を参照
https://matplotlib.org/api/markers_api.html

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  markers="^"
                 )
```
![pairplot_11.png](https://qiita-image-store.s3.amazonaws.com/0/273349/647baa0e-e1af-6c85-92a8-092a9d356726.png)

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

```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  height=2,
                  aspect=2
                 )
```
![pairplot_12.png](https://qiita-image-store.s3.amazonaws.com/0/273349/3c7869ef-0638-1140-76a5-01ecf7530fbb.png)

## 欠損値の排除 : dropna
```python:script.ipynb
pg = sns.pairplot(df, # 入力データ
                  hue='species', # 種別
                  hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
                  dropna=True
                 )
```

![pairplot_13.png](https://qiita-image-store.s3.amazonaws.com/0/273349/663fc20c-2628-21f6-2a23-63fb94b00cc2.png)

## plot_kws , diag_kws , grid_kws
以下のURLを参考に、PairGridのオプションを設定することでより細かい指定が可能となります。
※こんなん、めっちゃこだわり強い人向けやんなぁ。。。
https://seaborn.pydata.org/generated/seaborn.PairGrid.html#seaborn.PairGrid

```python: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](https://qiita-image-store.s3.amazonaws.com/0/273349/55b81ac3-27c7-e24e-f252-ad3db62a0d06.png)

# まとめ
no seaborn , no life