NBA投篮数据可视化,4行代码就能实现! | 您所在的位置:网站首页 › lakerslogo图 › NBA投篮数据可视化,4行代码就能实现! |
之前小F说了G6湖人总冠军,果不其然湖人夺冠了。 不过硬实力摆在那里,说不说其实关系也不大,哈哈哈。
36岁的老詹还没有老,4座总冠军+4次FMVP。 湖人总冠军, Kobe! this is for u! 今天给大家介绍一个好东西~ 只需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文件我已上传公众号,回复「湖人总冠军」即可获取。 万水千山总是情,点个 行不行。 |
CopyRight 2018-2019 实验室设备网 版权所有 |