はじめに
タイトルは以下の記事を読んで、即活用させていただきました。
https://qiita.com/YumaInaura/items/0d8427bfe2d7be476d0d
記事の中身はseabornのペアプロットの使い方をまとめたものです。
※seaborn 0.9.0
【参考】
https://seaborn.pydata.org/generated/seaborn.pairplot.html
seabornのペアプロットの使い方
定番のirisを使っていきます。
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
基本
%matplotlib inline
pg = sns.pairplot(df, # 入力データ
hue="species" # 種別
)
種別の順番指定 : hue_order
pg = sns.pairplot(df, # 入力データ
hue="species", # 種別
hue_order=['virginica', 'versicolor', 'setosa'] # 種別の順番指定
)
カラーパレットの指定 : palette
カラーパレットの指定方法については以下のURLに詳細がある。
https://matplotlib.org/users/colormaps.html
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
palette='Greys' # カラーパレットの指定
)
軸に使用するカラムの指定 : vars
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
vars=['sepal_length','sepal_width'] # 軸に使用するカラムの指定
)
X軸,Y軸ごとに使用するカラムの指定 : x_vars , y_vars
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軸のカラム
)
対角の設定 : diag_kind
‘auto’, ‘hist’, ‘kde’の3つの内から指定できる。
※デフォルト(auto)は何依存なのかわかんない。
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
diag_kind="auto"
)
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
diag_kind="hist"
)
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
diag_kind="kde"
)
プロットの種類 : kind
‘scatter’, ‘reg’から選択可能
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
kind="scatter"
)
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
kind="reg"
)
マーカー指定 : markers
マーカー指定についての詳細は以下を参照
https://matplotlib.org/api/markers_api.html
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
markers="^"
)
縦幅、横幅の調節 : height , aspect
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
height=2,
aspect=2
)
欠損値の排除 : dropna
pg = sns.pairplot(df, # 入力データ
hue='species', # 種別
hue_order=['virginica', 'versicolor', 'setosa'], # 種別の順番指定
dropna=True
)
plot_kws , diag_kws , grid_kws
以下のURLを参考に、PairGridのオプションを設定することでより細かい指定が可能となります。
※こんなん、めっちゃこだわり強い人向けやんなぁ。。。
https://seaborn.pydata.org/generated/seaborn.PairGrid.html#seaborn.PairGrid
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)
)
まとめ
no seaborn , no life