こんにちは!
皆さんは、ヒストグラム付きの散布図を表示したいと思ったことはありませんか?
Matplotlibを使ったら散布図を表示できるよね!
Matplotlibでは簡単に散布図を表示することが可能です。しかしSeabornを使えば、簡単にヒストグラム付きの散布図を表示することができます。
ヒストグラム付きの散布図を表示するには、Seabornライブラリの「jointplot()」を使います。
Seabornライブラリのインストールが終わっていない方は、インストールしておきましょう。
今回の記事では、以下の内容について紹介します。
- jointplot()の基本的な使い方
- jointplot()のオプション「kind」の種類
ヒストグラム付きの散布図を表示する jointplot()
ヒストグラム付きの散布図を表示するには「jointplot()」を使います。
jointplot()の基本的な使い方
jointplot()の基本的な書式は以下になります。
x,yには、dataに存在する表示したい列名またはデータを指定します。
以下のプログラムは、ヒストグラム付きの散布図を表示するプログラムです。
from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = iris.target_names[iris.target]
sns.jointplot(df.columns[0], df.columns[1], data=df)
plt.tight_layout()
plt.show()
散布図を表示する部分は以下のような記述も可能です。実行結果は同じになります。
sns.jointplot(df["sepal length (cm)"], df["sepal width (cm)"])
実行結果
オプション kind
「kind」に指定する値を変更することで、プロットやヒストグラムの種類を変えることができます。
kindの種類は以下の5つです。scatterがデフォルト値です。
scatter | 散布図 |
reg | 散布図と回帰直線 |
resid | 回帰直線からの残差 |
kde | カーネル密度推定 |
hex | 6角形のヒートマップ |
reg
「reg」を指定すると、散布図と回帰直線を表示します。
sns.jointplot(df.columns[0], df.columns[1], data=df, kind='reg')
実行結果
resid
「resid」を指定すると、回帰直線からの残差を表示します。
sns.jointplot(df.columns[0], df.columns[1], data=df, kind='resid')
実行結果
kde
「kde」を指定すると、カーネル密度推定のグラフを表示します。
sns.jointplot(df.columns[0], df.columns[1], data=df, kind='kde')
実行結果
hex
「hex」を指定すると、6角形のヒートマップを表示します。
sns.jointplot(df.columns[0], df.columns[1], data=df, kind='hex')
実行結果
まとめ
今回の記事では、以下の内容について紹介しました。
- jointplot()の基本的な使い方
→データを指定
指定されたデータまたは行を使った散布図を出力 - jointplot()のオプション「kind」の種類
→scatter, reg, resid, kde, hex
ヒストグラム付きの散布図を描けるようになって、データの特徴をつかむのに役立てましょう!