Python Y軸の列名を指定して散布図の作成「sns.pairplot」。更にY軸の範囲を設定する

'21/12/17更新:カテゴリの識別を色でなくて、マーカーでする場合の雛形コードを追記しました。
 本記事では、下図のような散布図を作成する雛形コードを載せました。seabornのpairplotを用います。

f:id:HK29:20220219135640j:plain

Y軸の列名を指定するには下記のようにします。

    y_vars = 'PRICE', # y軸のカラム

Y軸の範囲は下記のように設定します。

ax.set(ylim=(0, 60)) # y軸の範囲(レンジ)を指定

 

■本プログラム

#!/usr/bin/env python
# coding: utf-8

# In[1]:


# csvファイルをpandasデータフレームで読み込む
import pandas as pd

df = pd.read_csv('boston_dataset.csv')
df


# In[2]:


# 行列散布図
from matplotlib import pyplot as plt
import seaborn as sns

x_name_list = ['CRIM', 'INDUS', 'RM', 'PTRATIO', 'LSTAT']
y_name = 'PRICE'

sns.set_context('talk')
ax = sns.pairplot(
    df,
    x_vars = x_name_list, # x軸のカラム
    y_vars = y_name, # y軸のカラム
    hue = 'CHAS', # 凡例に表示したい列名を指定(カテゴリ変数)
    palette = 'gnuplot2', # 'tab10' 'magma' 'cool' 'bar' 'gnuplot2'
    kind = 'reg', # 線形近似線を記入
    markers = '.',
    diag_kind = 'kde',
    diag_kws = dict(shade = True),
    height = 3,
    aspect = 3/4
)
ax.set(ylim=(0, 60)) # y軸の範囲(レンジ)を指定
ax.fig.suptitle('boston data set', y = 1.0) # タイトル作成
plt.subplots_adjust(left=0.1, right=0.9, bottom=0.3, top=0.85) # グラフ部分の調整
plt.savefig('Boston.jpg', bbox_inches="tight")

ちなみに、下図のように近似式を入れずに、カテゴリをマーカーで識別する場合の雛形コードは次の通りです。特許出願の際などで白黒である必要の場合に使えます。

f:id:HK29:20211217232309p:plain

import matplotlib.pyplot as plt
import seaborn as sns

sns.set_context('talk')
ax = sns.pairplot(
    df,
    x_vars = ['x1', 'x2', 'x3'],
    y_vars = 'stress',
    hue = 'label',
    palette = 'Greys', # 'Greys' 'Blues' 'Reds' 'Greens' 'Purples'
    markers = ['o', 'X', '^'], # 's' 'D'
   plot_kws = {'s':100, #'alpha':0.9, 'linewidth':0.5, 'edgecolor':'k'} ) ax.set(ylim=(0, 350)) # y軸の範囲(レンジ)を指定
plt.savefig(f'{file_path[:-4]}.jpg', bbox_inches="tight")

以上

<広告>