[seaborn] 13. 2つのデータの関係性を2次元プロットで表示(jointplot)

python

はじめに

簡単かつ簡潔にデータを可視化できるライブラリであるseabornを用いて、2つのデータの関係性を2D plotで表示する方法について説明する。

コード

コードをダウンロード(.pyファイル)コードをダウンロード(.ipynbファイル)

解説

モジュールのインポートなど

seabornなどのversion

データの読み込み

2012-2019のサッカーJリーグのJ1の結果を下記サイトから読み込む。URLごとにTableをDataFrameとして読み込み、読み込んだものをリストに加えていく。

リーグサマリー:2020 J1 順位表 | データによってサッカーはもっと輝く | Football LAB
フットボールラボ(Football LAB)はサッカーをデータで分析し、新しいサッカーの観戦方法を伝えるサッカー情報サイトです。選手のプレーを評価するチャンスビルディングポイントやプレースタイル指標、チームの戦術を評価するチームスタイル指標といった独自のデータを開発しています。データを活用してサッカーに新しい視点を提供...

DataFrameの結合

pd.concatでリスト内のデータフレームを結合する。結合したDataFrameの上位5行は以下のようになる。

順位Unnamed: 1Unnamed: 2勝点試合数得点失点得失平均得点平均失点
01NaNサンフレッチェ広島広島643419786334291.91.0
12NaNベガルタ仙台仙台5734151275943161.71.3
23NaN浦和レッズ浦和553415109474251.41.2
34NaN横浜F・マリノス横浜FM5334131474433111.31.0
45NaNサガン鳥栖鳥栖533415811483991.41.1

ヒストグラム付き散布図の表示

sns.jointplot(x=”勝”, y=”敗”, color=”C0″,data=data)でx軸に勝のデータ、y軸に敗のデータを用いた散布図が作成され、散布図の上に勝データのヒストグラム、右に敗データのヒストグラムが表示される。

散布図に回帰直線を表示

kind = ‘reg’で散布図のデータに対して回帰直線が引かれ、上と右のヒストグラムにもカーネル密度推定グラフが表示される。

線形回帰の残差をプロット

kind = ‘resid’でyデータを線形回帰した際の各xデータにおける残差をプロットすることができる。右には残渣のヒストグラムが表示される。

六角形のプロットで分布を表示

kind=”hex”により、六角形(hexbin)で分布を表示する。頻度が高い箇所ほど濃い色になる。

2次元カーネル密度推定マップ

kind=”kde”で2次元のカーネル密度推定分布を表示できる。この場合、ヒストグラムは表示されない。

周囲のグラフと中心のグラフの間隔の調整

space=0とすることで間隔を0とし、周囲のグラフと中央のグラフが結合される。

周囲のグラフの大きさを調整

ratio=2とすることで、周囲にあるグラフの高さを中心のグラフの1/2にすることができる。つまり、大きくするほど周囲のグラフの高さは小さくなる。

参考

Visualizing the distribution of a dataset — seaborn 0.10.0 documentation
seaborn.jointplot — seaborn 0.10.0 documentation

コメント