1対多のグラフ です。
基本的に量的変数を扱う方法ですが、質的変数は ダミー変換 して質的・量的が混合していたり、質的変数だけでも使えるようにしてあります。
因果関係の分析をする時などは、総当たりの散布図は必要なく、1つの変数と他のすべての変数の組み合わせについて、散布図を見たいことがあります。 その時の作り方です。
下記のコードでは、1つの変数というのは、「Y」という名前にしておく必要があります。 他の変数の名前は、特に指定はありません。
まずは、注目したい変数が量的変数の場合です。
import os #パッケージの読み込み
import pandas as pd #パッケージの読み込み
import matplotlib.pyplot as plt# パッケージの読み込み
import seaborn as sns # パッケージの読み込み
from sklearn import preprocessing # パッケージの読み込み
%matplotlib inline
sns.set(font='HGMaruGothicMPRO') # PandasのPlotのグラフの見た目をseaborn風にする。グラフのフォントを設定する
os.chdir("C:\\PyTest") # 作業用ディレクトリを変更
df= pd.read_csv("Data.csv" , engine='python')# データを読み込み
df2 = pd.get_dummies(df)# 質的変数はダミー変換
df3 = preprocessing.minmax_scale(df2)# 正規化
df4 = pd.DataFrame(df3, columns = df2.columns.values)# データフレームに戻す
df5 = pd.melt(df4, id_vars=['Y'])# データをグラフ用に並べ変える
sns.relplot(data=df5, x='value', y='Y', col='variable',kind='scatter',col_wrap = 5) # ひとつの量的変通と、他のすべての量的変数で散布図を描く
注目したい変数が質的変数の場合です。
import os #パッケージの読み込み
import pandas as pd #パッケージの読み込み
import matplotlib.pyplot as plt# パッケージの読み込み
import seaborn as sns # パッケージの読み込み
from sklearn import preprocessing # パッケージの読み込み
%matplotlib inline
sns.set(font='HGMaruGothicMPRO') # PandasのPlotのグラフの見た目をseaborn風にする。グラフのフォントを設定する
os.chdir("C:\\PyTest") # 作業用ディレクトリを変更
df= pd.read_csv("Data.csv" , engine='python')# データを読み込み
df11 =pd.DataFrame(df['Y'])# Yの列を別に作っておく
df12 = df.drop('Y', axis=1)# Y以外の列を別に作っておく
df2 = pd.get_dummies(df12)# 質的変数はダミー変換
df3 = preprocessing.minmax_scale(df2)# 正規化
df3 = pd.DataFrame(df3, columns = df2.columns.values)# データフレームに戻す
df4 = pd.concat([df11, df3], axis = 1)# Yの列を足す
df5 = pd.melt(df4, id_vars=['Y'])# データをグラフ用に並べ変える
sns.catplot(data=df5, x='Y', y='value', col='variable', kind='strip', jitter=False,col_wrap = 5) # 1次元散布図
sns.catplot(data=df5, x='Y', y='value', col='variable', kind='strip', jitter=True,col_wrap = 5) # 1次元ジター散布図
sns.catplot(data=df5, x='Y', y='value', col='variable', kind='box', col_wrap = 5) # 箱ひげ図