Japanese football players in foreign clubs shown on the map.
##この記事について
現在、ビジャレアルの久保選手の動向が話題になっているところですが、海外で活躍されてる選手はどこにいるのかPython/Foliumで可視化してみました。その中で工夫したポイントを説明したいと思います。
1.Foliumでアイコンを所属チームのマークにした
2.所属選手名をクリックではなく、マウスオーバーで表示させるようにする
3.データの入手・前処理について
チームのアイコン表示について
カスタムアイコンはfolium.features.CustomIconを利用しました。
なかなか日本語の説明もなく、英語のFoliumのサイトの説明を頼りになんとなくやっていたらできました。
チームのアイコンはネットで収集したものを、背景透明にしてpngで、imageフォルダに入れてあり、アイコンが見つからない場合のエラー処理も以下のコードには入れてあります。
##所属選手名をクリックではなく、マウスオーバーで表示させるようにする
このマウスオーバーで情報を表示することを、英語でtooltipというそうです。
それをFoliumのmarkerを指定するときに
tooltip='文字列'
で指定するだけです。以下のコードを参考にしてください。
## データの入手・前処理について
まずはWikipediaの情報をもとに、ホームタウン、ホームスタジアムの経度・緯度、アイコンなどをかき集めてエクセルにしています。
本当は自動でスクレイピングでやりたかったのですが、それほど数もないので手動にしました。。。
集めた各選手・チームのデータはEXCELで保存し、Pandas/Dataframeからプロットしています。
それなりにデータを集めるのは大変でした 汗
##コード
import pandas as pd
import folium
from glob import glob
df_player= pd.read_excel ('PlayerClubData.xlsx', header=0,encoding='utf-8' )
m = folium.Map(location=[46, -1.5], zoom_start=4)
for club in df_player['club'].unique():
df2=df_player[df_player['club']==club] #2名以上いる場合、名前を結合する
names=' '.join(df2['Player'].tolist()) # Series = > List => joinしてstr
for item in df2.head(1).iterrows(): #ちょっとややこしいが、各クラブの1人目だけプロットするのでhead(1)
if item[1]['lat']>0 or item[1]['lat']<0 : # 経度データがfloatでnanはスキップする
l_in = [s for s in glob("./images/*.png") if club in s] #アイコンファイルがあるかチェックする
if len(l_in)>0: #該当するファイル数 通常は1
iconTmp = folium.features.CustomIcon(l_in[0], icon_size=(50,50)) #ここでアイコンファイルを指定する
else:
iconTmp=folium.Icon(color='red') #アイコンファイルがない場合はこちら
folium.Marker(location=[item[1]['lat'], item[1]['lon']],
tooltip=item[1]['club']+'<br>'+names, # このtooltipでマウスオーバーで表示できる
icon=iconTmp).add_to(m) #上で指定したアイコンファイルにする
m.save('index.html')
print ('finished!')
[ソースコード及びデータファイルはこちらから]
(https://github.com/Kent747Tak/J-FootballPlayersAbroad)
## 参考
Foliumでアイコンを表示するサンプル(英語)Python Folium — A Data Visualization Superhero
サンプルコードが分かりやすかったです。
[サッカー海外組の所属クラブ - 全画面地図 ]
(https://map.ultra-zone.net/japanese_player)
始めはこちらをみて、同じものを作りたいと思いました。このメンバーは2012年?!
Pythonのfoliumで岩手県内の病院の場所を可視化してみる
こちらもいろいろと参考にさせていただきました。
##感想
covid-19で海外に気軽に行けなくなってしまいましたが、個人的には海外旅行は観光スポットを巡るるのもいいのですが、現地でサッカー観戦するのも楽しいかと思います。その際にはこの地図で効率よく観戦できるルートを検討していただければと思います。
#個人的には、久保建英、南野拓実、スウェーデンにいる杉田祐希也 、宮市亮に期待しています!