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

解説
モジュールのインポートなど
バージョン
データの読み込み
2012-2019のサッカーJリーグのJ1の結果を下記サイトから読み込む。URLごとにTableをDataFrameとして読み込み、読み込んだものをリストに加えていく。

リーグサマリー:2020 J1 順位表 | データによってサッカーはもっと輝く | Football LAB
フットボールラボ(Football LAB)はサッカーをデータで分析し、新しいサッカーの観戦方法を伝えるサッカー情報サイトです。選手のプレーを評価するチャンスビルディングポイントやプレースタイル指標、チームの戦術を評価するチームスタイル指標...
DataFrameの結合
pd.concatでリスト内のデータフレームを結合する。結合したDataFrameの上位5行は以下のようになる。
順位 | Unnamed: 1 | Unnamed: 2 | 勝点 | 試合数 | 勝 | 分 | 敗 | 得点 | 失点 | 得失 | 平均得点 | 平均失点 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | NaN | サンフレッチェ広島広島 | 64 | 34 | 19 | 7 | 8 | 63 | 34 | 29 | 1.9 | 1.0 |
1 | 2 | NaN | ベガルタ仙台仙台 | 57 | 34 | 15 | 12 | 7 | 59 | 43 | 16 | 1.7 | 1.3 |
2 | 3 | NaN | 浦和レッズ浦和 | 55 | 34 | 15 | 10 | 9 | 47 | 42 | 5 | 1.4 | 1.2 |
3 | 4 | NaN | 横浜F・マリノス横浜FM | 53 | 34 | 13 | 14 | 7 | 44 | 33 | 11 | 1.3 | 1.0 |
4 | 5 | NaN | サガン鳥栖鳥栖 | 53 | 34 | 15 | 8 | 11 | 48 | 39 | 9 | 1.4 | 1.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にすることができる。つまり、大きくするほど周囲のグラフの高さは小さくなる。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Visualizing distributions of data — seaborn 0.13.2 documentation
seaborn.jointplot — seaborn 0.13.2 documentation
コメント