LoginSignup
2
5

More than 3 years have passed since last update.

2020年Jリーグの移籍状況を可視化したいんだけど、どうする?

Posted at

動機

  • サッカーは、毎シーズン多くの選手が移籍します。
  • 今シーズンの公式サイトには、1650名(2020/1/31時点)の選手が登録されています。
  • また、移籍情報を公開しているサイトJ'S GOAL’Sサイトに移籍情報が上がっています。
  • 以前から、この選手の流動状態を可視化出来ないものかと考えていました。
  • Google先生に「流入流出 グラフ」と検索しても使えそうなものはヒットしませんでした。
  • それを「流入流出 可視化」とすると「サンキーダイアグラム」を発見!これは使えるかも!

サンキーダイアグラムについて

サンキー・ダイアグラム(英Sankey diagram)は工程間の流量を表現する図表である。矢印の太さで流れの量を表している。特にエネルギーや物資、経費等の変位を表す為に使われる。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

本家matplotlibはさっぱりわからない、plotlyはとても美しいがさっぱりわからない。で一番簡単な demo:Exporting Images.ipynbでトライ!

写経

sankey.py
from ipysankeywidget import SankeyWidget
from ipywidgets import Layout
  • 事前にpip install ipysankeywidgetでライブラリをインストールします。
  • またjupyter labで使用する場合は、
$ jupyter labextension install jupyter-sankey-widget @jupyter-widgets/jupyterlab-manager

と拡張機能を登録します。

sankey.py
links = [
    {'source': 'start', 'target': 'A', 'value': 2},
    {'source': 'A', 'target': 'B', 'value': 2},
    {'source': 'C', 'target': 'A', 'value': 2},
    {'source': 'A', 'target': 'C', 'value': 2},
]

これがデータ部分なので、移籍のダミーデータに置き換えます。

sankey.py
links = [
    {'source': '北海道_in', 'target': '海外_out', 'value': 1},
    {'source': '北海道_in', 'target': 'J2_out', 'value': 1},
    {'source': '北海道_in', 'target': '大学_out', 'value': 3},
    {'source': '湘南_in', 'target': '北海道_out', 'value': 1},
    {'source': 'J3_in', 'target': '北海道_out', 'value': 1},
]
sankey.py
layout = Layout(width="600", height="400")
sankey = SankeyWidget(links=links, layout=layout)
sankey.auto_save_png('./img/test.png')

出力の画像のサイズは幅:600ピクセル,高さ:400ピクセルで、PNG形式で保存します。
sample_sapporo.png

説明するまでもないですが、加入した選手が5名で移籍した選手が2名の流れが表現できました。
(見てくれはショボいですが、一応流れは表現できそうですね)

まとめ

  • 「pythonでsankeyダイアグラム」@deaikeiさんやdemo:Exporting Images.ipynbの二番煎じでまだ勉強が足りない。
  • J'S GOAL’Sサイトでは、著作権について文書・画像・映像等の複製禁止と明示しています。なのででスクレイピング手法や可視化の結果の共有は行いません。
  • サンキーダイアグラムの可視化に関して知見が得られた。
2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5