[seaborn] 1. relplotで散布図を表示する

python

はじめに

seabornは、Pythonで美しいグラフを簡単に作成するためのデータ可視化ライブラリです。Matplotlibをベースに統計グラフを容易に作成できます。本記事では、seabornの基本的な機能である「relplot」を使って散布図(scatterplot)を表示する方法について解説します。

コード

解説

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

seabornは一般的に「sns」という略称でインポートされます。sns.set(style=”darkgrid”)でグラフの背景スタイルを設定し、sns.set_context(‘talk’)で文字サイズなどの表示要素を調整できます。

データの読み込み

データについては、下記サイトより2019シーズンのJ1リーグの結果を取得しました。

リーグサマリー:2019 J1 順位表 | データによってサッカーはもっと輝く | Football LAB
フットボールラボ(Football LAB)はサッカーをデータで分析し、新しいサッカーの観戦方法を伝えるサッカー情報サイトです。選手のプレーを評価するチャンスビルディングポイントやプレースタイル指標、チームの戦術を評価するチームスタイル指標...
順位 Unnamed: 1 Unnamed: 2 勝点 試合数 得点 失点 得失 平均得点 平均失点
0 1 NaN 横浜F・マリノス横浜FM 70 34 22 4 8 68 38 30 2.0 1.1
1 2 NaN FC東京FC東京 64 34 19 7 8 46 29 17 1.4 0.9
2 3 NaN 鹿島アントラーズ鹿島 63 34 18 9 7 54 30 24 1.6 0.9
3 4 NaN 川崎フロンターレ川崎F 60 34 16 12 6 57 34 23 1.7 1.0
4 5 NaN セレッソ大阪C大阪 59 34 18 5 11 39 25 14 1.1 0.7
5 6 NaN サンフレッチェ広島広島 55 34 15 10 9 45 29 16 1.3 0.9
6 7 NaN ガンバ大阪G大阪 47 34 12 11 11 54 48 6 1.6 1.4
7 8 NaN ヴィッセル神戸神戸 47 34 14 5 15 61 59 2 1.8 1.7
8 9 NaN 大分トリニータ大分 47 34 12 11 11 35 35 0 1.0 1.0
9 10 NaN 北海道コンサドーレ札幌札幌 46 34 13 7 14 54 49 5 1.6 1.4
10 11 NaN ベガルタ仙台仙台 41 34 12 5 17 38 45 -7 1.1 1.3
11 12 NaN 清水エスパルス清水 39 34 11 6 17 45 69 -24 1.3 2.0
12 13 NaN 名古屋グランパス名古屋 37 34 9 10 15 45 50 -5 1.3 1.5
13 14 NaN 浦和レッズ浦和 37 34 9 10 15 34 50 -16 1.0 1.5
14 15 NaN サガン鳥栖鳥栖 36 34 10 6 18 32 53 -21 0.9 1.6
15 16 NaN 湘南ベルマーレ湘南 36 34 10 6 18 40 63 -23 1.2 1.9
16 17 NaN 松本山雅FC松本 31 34 6 13 15 21 40 -19 0.6 1.2
17 18 NaN ジュビロ磐田磐田 31 34 8 7 19 29 51 -22 0.9 1.5

散布図の表示

sns.relplotでx=”勝”, y=”得点”, data=df_j1とすることで、DataFrame(df_j1)の「勝」をx軸、「得点」をy軸とした散布図が得られます。これにより、以下のようなグラフが出力されます。図を保存したい場合は、matplotlibと同様にplt.savefig()を使用します。

新たなパラメータを加えて色を変えて表示

hue=”敗”パラメータを使用することで、各データポイントの負けた試合数を色分けして表示できます。このとき、色分けの凡例が図の右側に自動的に表示されます。

新たなパラメータを加えて点の大きさを変えて表示

size=”敗”パラメータを使用すると、各データポイントの負けた試合数を色ではなく、点の大きさで表現することができます。

点の大きさを変化させたい場合

size=”敗”パラメータとsizes=(50, 500)を組み合わせることで、データポイントの最小面積と最大面積を設定できます。これにより、負けた試合数に応じて点のサイズが視覚的に分かりやすく変化します。

凡例をすべて表示

legend=”full”で凡例をすべて表示することができます。

アスペクト比を変えて表示

aspect=2とすることで縦横比が2となります。

図の大きさを変えて表示

heightパラメータを設定することで、図のサイズを変更できます。単位はインチで指定します。

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

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

まとめ

本記事では、seabornのrelplot関数を使用して散布図を表示する方法について解説しました。relplotは変数間の関係性を視覚化するための強力なツールであり、様々なカスタマイズオプションを提供します。基本的な使い方から始めて、色分け、スタイル変更、サイズ調整などの応用方法まで幅広く紹介しました。seabornを使うことで、データの探索的分析が格段に効率的になります。

参考

Visualizing statistical relationships — seaborn 0.13.2 documentation

コメント