阳途教育为您的考证保驾护航

关于我们|网站公告|广告服务|联系我们| 网站地图

搜索
计算机考试分类 计算机一级 计算机二级 计算机三级

编程世界的新手指南,欢迎来到Crossin的编程教室!

日期:2023/01/07 04:11作者:佚名人气:

导读:虎扑的JRs喊了那么年“湖人总冠军”,今年终于实现了!之前我们做过一篇NBA球员投篮数据可视化的案例:果然是2019-2020年NBA常规赛的球员投篮数据。两大夺冠热门球队,被掘金和热火干翻船了。今年湖人的夺冠班底,调用函数list_team_players:湖人2020年常规赛全队的投篮情况,调用函数TeamShots:03年至20年,小皇帝到詹皇的投篮数据可视化:...

#湖人总转军#升级版NBA投篮数据可视化,4行代码即可实现!

Crossin的编程教室

交叉密码

每天5分钟,轻松学会编程。 点此获取通俗易懂的Python入门教程。 编程世界的初学者指南。

发表于

包含在集合中

大家好,欢迎来到Crossin的编程课堂!

虎扑的JRs称呼了这么多年的“湖人总冠军”,今年终于成真了!

36岁的詹还不老,4个总冠军+4个FMVP。

我们之前做过一个NBA球员投篮数据可视化的案例:

可惜本文使用的官方接口现已关闭,导致代码无法使用。

不过最近公众号Fanast的作者小F告诉我,有大佬造了一个“轮子”,提供了一个全自动化的接口,只需要4行代码就可以实现。 我将在这里与您分享。

GitHub地址:

shot-chart 库也可以直接安装在 PyCharm 中。 记得选择版本 1.0.0。 目前最新的版本是1.1.0,没有明确区分scored和unscored,所以我们选择安装1.0.0版本。

您也可以下载并安装这两个版本以查看不同之处。

from shot_chart.core import *

# 2019-2020赛季
shots_2019 = make_df(untar_data(URLs.SHOTS_2019))

同样,这个老板也把数据放到了网络上,需要通过数据请求来获取。

2016欧洲杯夺冠热门_2018世界杯夺冠大热门_今年nba夺冠热门

通过查看源码(core.py)今年nba夺冠热门,发现数据的请求地址:

地址如下今年nba夺冠热门,从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:

2018世界杯夺冠大热门_2016欧洲杯夺冠热门_今年nba夺冠热门

from shot_chart.core import *

# 2019-2020赛季
shots_2019 = make_df('shots-2019.csv')

# 湖人夺冠班底
print(list_team_players(shots_2019, 'LA Lakers'))

结果如下:

它还带有拍摄次数。 詹姆斯、戴维斯、库兹马、波普、格林位列前五。

卧龙凤雏(格林、蒲)得一,天下可安。

湖人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 x 全场投篮数 + 0.44 x 罚球数]

再来看看三十岁男人(老詹)的拍摄情况:

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(20012020):
    # 文件名
    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()

2016欧洲杯夺冠热门_2018世界杯夺冠大热门_今年nba夺冠热门

发现图标有点大,可以修改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”获取。

千山万水,情不自禁,求购~

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2022 阳途网 版权所有 | 备案号:湘ICP备2022018839号-1

声明: 本站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告