之前小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(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()


发现图标有点大,可以对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」即可获取。

···  END  ···







©著作权归作者所有:来自51CTO博客作者mb5fe18ec4a4df8的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 字体图标的引入和通过媒体查询改变导航样式
  2. HTML样式和常用选择器
  3. 字体图标的引用和自定义样式/媒体查询的使用
  4. 数据库的CURD操作、PDO本质与原理的学习
  5. CSS之伪类选择器和简单盒子简单案例
  6. 伪类选择器与盒模型常用属性
  7. 伪类选择器-结构伪类、根据位置选择匹配
  8. 7.4——常用标签与应用场景之表格与单元格
  9. css伪类选择器和盒模型

随机推荐

  1. 关于PHP CURL上传二进制流图片
  2. 关于php preg_replace_callback回调函数
  3. PHP读取Excel图片对象,并保存替换为相对路
  4. PHP最大连接数的设置及php-fpm高并发参数
  5. PHP基础案例四:展示学生列表
  6. PHP实用函数集合
  7. 详解PHP sprintf()格式化用法
  8. 通过PHP内置web服务器实现简单的调试应用
  9. PHP模拟supervisor的进程管理
  10. php.ini与phpinfo()的用处详解