虎扑 JRs 多年心愿达成!老詹 4 冠 4FMVP,湖人总冠军
大家好,欢迎来到编程课堂!
虎扑的JRs喊了这么多年“湖人总冠军”,今年终于实现了!
36岁的詹姆斯还不老,4个总冠军nba球队夺冠次数,4个FMVP。
我们之前曾做过NBA球员投篮数据可视化的案例研究:
遗憾的是,本文所用到的官方接口现已关闭,导致代码无法正常使用。
不过最近公众号作者小F告诉我nba球队夺冠次数,有大佬造了一个“轮子”,提供了全自动化接口,仅用4行代码就能实现,在这里分享给大家。
地址:
也可以直接在 中安装 shot-chart 库,记得选择 1.0.0 版本,目前最新版本是 1.1.0,而且没有明显区分 和 ,所以我们选择安装 1.0.0 版本。
您也可以下载并安装两个版本,看看是否有区别。
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df(untar_data(URLs.SHOTS_2019))
同样,这个大佬也将数据放在了网上,只有通过数据请求才能够获取到。
通过查看源代码(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常规赛的球员投篮数据。
全部下载下来,这样可以直接在本地调用,不用担心被屏蔽。
数据读取代码修改如下,其实就是读取:
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')
2020年NBA赛季球队名单、调用功能:
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')
# 球队名单
print(list_teams(shots_2019))
结果如下:
洛杉矶(快船队)和(雄鹿队)真丢脸。
两支夺冠热门分别被掘金和热火击败。
今年湖人的总冠军球队调用了该函数:
from shot_chart.core import *
# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')
# 湖人夺冠班底
print(list_team_players(shots_2019, 'LA Lakers'))
结果如下:
还统计了出手次数,詹姆斯、戴维斯、库兹马、波普、格林排名前五。
如果我们能够得到其中之一(绿党或教皇),我们就能给世界带来和平。
2020年常规赛湖人投篮情况,调用函数:
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()
可以看出,篮筐是詹姆斯的主要得分点。
2003年至2020年从小皇帝到詹姆斯王的射门数据可视化:
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中添加参数snba球队夺冠次数,并将大小设置为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”即可获取。
爱情一直在,可以给我一下吗?
赛事直播
录像回放
体育资讯