[Python] [Folium] 해외의 일본인 축구 선수를 지도상에서 시각화한다 2021.1.1 현재
이 기사에 대하여
현재, 비야레알의 쿠보 선수의 동향이 화제가 되고 있는 곳입니다만, 해외에서 활약되고 있는 선수는 어디에 있는지 Python/Folium에서 가시화해 보았습니다. 그 중에서 궁리한 포인트를 설명하고 싶습니다.
1. Folium에서 아이콘을 소속 팀으로 표시
2. 소속 선수명을 클릭이 아니라 마우스 오버로 표시하도록 한다
3. 데이터의 입수·전처리에 대해서
결과
완성 된 것은 여기에서 액세스하십시오
팀 아이콘 표시 정보
맞춤 아이콘은 folium.features.CustomIcon을 사용했습니다.
좀처럼 일본어 설명도 없고, 영어 Folium 사이트 설명
팀의 아이콘은 그물에서 수집한 것을 배경 투명하게 하고 png로 image 폴더에 넣어져 있고 아이콘을 찾을 수 없는 경우의 에러 처리도 아래의 코드에는 넣어져 있습니다.
소속 선수명을 클릭이 아니라 마우스 오버로 표시하도록 한다
이 마우스 오버로 정보를 표시하는 것을 영어로 tooltip이라고 합니다.
Folium 마커를 지정할 때
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!')
소스 코드 및 데이터 파일은 여기에서
참고
Folium에서 아이콘을 표시하는 샘플(영문)Python Folium — A Data Visualization Superhero
샘플 코드를 알기 쉬웠습니다.
축구 해외 팀의 소속 클럽 - 전체 화면지도
처음에는 이쪽을 보고 같은 것을 만들고 싶었습니다. 이 멤버는 2012년? !
Python의 folium으로 이와테현내의 병원의 장소를 시각화해 본다
이쪽도 여러가지 참고로 했습니다.
감상
covid-19로 해외에 부담없이 갈 수 없게 되어 버렸습니다만, 개인적으로는 해외 여행은 관광 명소를 둘러보는 것도 좋지만, 현지에서 축구 관전하는 것도 즐거운가라고 생각합니다. 그 때에는 이 지도에서 효율적으로 관전할 수 있는 루트를 검토해 주시면 좋겠습니다.
# 개인적으로는, 쿠보건영, 미나미노 타쿠미, 스웨덴에 있는 스기타 유키야, 미야시 료에 기대하고 있습니다!
Reference
이 문제에 관하여([Python] [Folium] 해외의 일본인 축구 선수를 지도상에서 시각화한다 2021.1.1 현재), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kent-747/items/07e54dee4e22d47a5421텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)