NBA 投篮数据可视化,4 行代码就能完成
作者 | 小F
泉源 | 法纳斯特(ID:walker398)
头图 | CSDN 下载自东边IC
之前小F说了G6湖人总冠军,果不其然湖人夺冠了。
不外硬才能摆在那边,说不说但是干系也不大,哈哈哈。
36岁的老詹还没有老,4座总冠军+4次FMVP。
关于NBA球员投篮数据的可视化,小F从前也写过一篇文章。
拜候地点:NBA球员投篮数据可视化
本人画球场图,本人爬数据,码了不少代码。
这回发觉了大佬造的轮子,只需4行代码就能完成。
GitHub地点:
https://github.com/theccalderon/shot_chart
在PyCharm上直接安装shot-chart库,记得版本选1.0.0的。
最新版本是1.1.0,得分和未得分没有分明区分开,以是小F选择安装1.0.0版本。
大伙也可以两个版本都下载安装,看有什么差别。
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df(untar_data(URLs.SHOTS_2019))
相反的这位大佬也是把数据放在网络上,必要经过数据哀求才干获取到。
此处小F经过查察源代码(core.py),发觉数据的哀求地点。
地点如下,从2000-2001赛季到2019-2020赛季。
2000-2001赛季常规赛数据
https://nba-shot-charts.s3.amazonaws.com/shots-2000.tgz
.......................................................
# 2019-2020赛季常规赛数据
https://nba-shot-charts.s3.amazonaws.com/shots-2019.tgz
直接在欣赏器上拜候地点,下载紧缩包,解压取得CSV文件。
公然是2019-2020年NBA常规赛的球员投篮数据。
统统下载下去,如此就可以直接当地调用,不必担心被墙掉。
数据读代替码修正为如下,但是就是pandas读取。
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')
2020赛季NBA的球队名单,调用函数list_teams。
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')
# 球队名单
print(list_teams(shots_2019))
取得后果如下。
可惜了LA Clippers(快船)和Milwaukee(雄鹿)。
两大夺冠抢手球队,被掘金和热火干翻船了。
本年湖人的夺冠班底,调用函数list_team_players。
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')
# 湖人夺冠班底
print(list_team_players(shots_2019, 'LA Lakers'))
取得后果如下。
还附带了脱手次数,詹姆斯、戴维斯、库兹马、波普、格林排前五。
卧龙凤雏(格林、波普)得一,可安天下。
昨天发扬爆表,小F给好评~
湖人2020年常规赛全队的投篮情况,调用函数TeamShots。
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')
# 湖人队2019-2020赛季投篮情况
Lakers = TeamShots(shots_2019, "LA Lakers")
Lakers.plot_shots
公然是4行代码呀~
右方的图绿色表现投篮得分,赤色表现投篮未得分。
右方的图横坐标表现距离,纵坐标表现次数,绿色表现脱手掷中次数,橙色表现投篮脱手次数。
FG投篮掷中率,eFG真实投篮掷中率。
真实投篮掷中率=全场得分/[2×全场脱手次数+0.44×罚球脱手次数]
来看一下三旬老夫(老詹)的投篮情况吧。
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')
# 勒布朗-詹姆斯2019-2020赛季常规赛投篮可视化
james = PlayerShots(shots_2019, "LeBron James")
james.plot_shots
可以看出,篮下是詹姆斯的主要得分点。
03年至20年,小天子到詹皇的投篮数据可视化。
from shot_chart.core import *
import pandas as pd
# 获取图表列名
shots_2000 = make_df('shots-2000.csv')
columns_list = [column for column in shots_2000]
# 新建一个空的dataframe
shots_all = pd.DataFrame(columns=columns_list)
# 获取2000-2020常规赛总数据
for i in range(2001, 2020):
# 文件名
file_name = 'shots-' + str(i) + '.csv'
shots = make_df(file_name)
# 纵向拼接
shots_all = pd.concat([shots_all, shots], ignore_index=True)
# 输入
# print(shots_all)
# 詹姆斯03-20常规赛投篮可视化
james = PlayerShots(shots_all, "LeBron James")
james.plot_shots
发觉图标有点大,可以对core.py文件修正。
在plt.scatter中添加参数s,设置轻重为3。
忽然发觉詹皇原本也云云全盘,三分、篮下、中投,就没有短板。
24号与23号之间的传承,曼巴永存。
科比00-17常规赛投篮可视化
Kobe = PlayerShots(shots_all, "Kobe Bryant")
Kobe.plot_shots
24,就是24小时都竭尽倾力。
再看看本年随队夺冠的霍门徒(霍华德)。
霍华德04-20常规赛投篮可视化
howard = PlayerShots(shots_all, "Dwight Howard")
howard.plot_shots
绝大大多都是眼线投篮,外线屈指可数。
以前的兴奋兽,单换詹姆斯的存在,厥后却开启了流浪生活沦为替补。
最初在湖人荡子转头,当起了蓝领,拿到了属于本人的总冠军。
心中有一种莫名的冲动,致敬我们的芳华!!!
20个CSV文件我已上传群众号「法纳斯特」,回复「NBA」即可获取。
点分享