Seaborn でヒストグラムつきの散布図を作成する

Last update: 2017-10-01

本ページでは、Python のデータ可視化ライブラリ、Seaborn (シーボーン) を使い、散布図の外側にヒストグラムを出力したグラフの作成方法を紹介します。通常の散布図に比べて、ヒストグラムを載せることで、最頻値や分布の状況を簡単に把握することができます。

jointplot: ヒストグラムつきの散布図を作成する

seaborn.jointplot メソッドは、散布図を描画し、その外側にヒストグラムを出力します。以下に紹介するパラメーターを指定することで、散布図だけでなく、六角形のヒートマップを用いて分布を可視化することもできます。

seaborn.jointplot の使い方

seaborn.jointplot の主要な引数

x, y データをベクトルで指定、または、データセットの列名を文字列で指定。
data 描画に用いるデータフレーム。出力対象の列名は上記 x と y で指定します。
kind プロットの種類。以下から指定する。
"scatter" : 散布図
"reg": 散布図と回帰直線
"resid": y 軸に回帰直線からの残差 (誤差) を出力する
"kde": カーネル密度推定を用いた等高線風の図
"hex": 六角形のヒートマップ
stat_func 散布図の右上に表示する統計量を計算する関数。入力パラメータは、(x, y) の 2 値であり、出力は (統計量, p 値) で構成される必要があります。
color 各要素をプロットする際に用いる matplotlib の色名を指定。
size 図のサイズを数値で指定。
ratio : numeric, optional Ratio of joint axes size to marginal axes height.
space 散布図と散布図の外側に出力するヒストグラムの間の空きスペースの大きさを数値で指定する。
dropna True に設定すると、欠損値を乗り除きます。
xlim, ylim x軸、y軸の下限、上限をタプル (下限, 条件) で指定。
joint_kws, marginal_kws, annot_kws プロットに用いる各種オプションをディクショナリで指定。

グラフの出力例

横軸に総支払額、縦軸にチップの額を出力します。
総支払額が増えるほどチップの額が増えることがわかり、さらに、支払額の最頻値は 10 〜 20 ドル、チップは 2 〜 4 ドルであることが見て取れます。

jointplot1


kind="hex" と指定し、上記の散布図を六角形のヒートマップ形式として表示します。

jointplot2

参考・ソースコード出典:
seaborn.jointplot — seaborn 0.7.1 documentation

See also