LoginSignup
53
63

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-01-12

はじめに

タイトルは以下の記事を読んで、即活用させていただきました。
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

53
63
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
63