Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@r_beginners

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

More than 1 year has passed since last update.

動機

  • サッカーは、毎シーズン多くの選手が移籍します。
  • 今シーズンの公式サイトには、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サイトでは、著作権について文書・画像・映像等の複製禁止と明示しています。なのででスクレイピング手法や可視化の結果の共有は行いません。
  • サンキーダイアグラムの可視化に関して知見が得られた。
4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
r_beginners
Rから始まって、最近はPythonをマスタしようと頑張っている。 最終ゴールは、スポーツ分析がしたい。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?