【Python】Seabornでヒストグラム付きの散布図を表示する方法を紹介!

こんにちは!

皆さんは、ヒストグラム付きの散布図を表示したいと思ったことはありませんか?

Python初心者

Matplotlibを使ったら散布図を表示できるよね!

先パイ
Seabornを使うとヒストグラム付きの散布図を表示することが可能じゃよ

Matplotlibでは簡単に散布図を表示することが可能です。しかしSeabornを使えば、簡単にヒストグラム付きの散布図を表示することができます。

ヒストグラム付きの散布図を表示するには、Seabornライブラリの「jointplot()」を使います。

Seabornライブラリのインストールが終わっていない方は、インストールしておきましょう。

今回の記事では、以下の内容について紹介します。

  • jointplot()の基本的な使い方
  • jointplot()のオプション「kind」の種類

ヒストグラム付きの散布図を表示する jointplot()

ヒストグラム付きの散布図を表示するには「jointplot()」を使います。

jointplot()の基本的な使い方

jointplot()の基本的な書式は以下になります。

seaborn.jointplot(x, y, data)

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
Python初心者
ヒストグラム付きの散布図だったらよくデータの特徴がわかるね!

ヒストグラム付きの散布図を描けるようになって、データの特徴をつかむのに役立てましょう!