我想,不如来做个NBA相关的数据分析案例好了
- 更新时间:
- 2024-03-12 09:35:31
因此,我们使用官方数据和绘图功能来查看不同球员的射门位置。
资源共享群:
01 视频版
对于这个数据分析案例,我做了一个视频版本,解释了代码,讲了操作的注意事项以及一些利弊、供需。 我在视频制作方面经验不是很丰富,所以请耐心等待。 (视频中有彩蛋)
写完本文案例的代码后,我将其发布到了虎扑上。 结果被推荐到首页,浏览量超过25万nba球员数据查询,回复近800条……谢谢JR们的夸奖!
原始图像、更多玩家生成的结果和完整代码可以在以下 URL 找到:
NBA投篮得分统计代码:
// 斯尼...
生成的数十位足球明星的照片:
提取码:jbpw
02 效果展示
像往常一样,我们先看一下结果。 每个点都是一次射击,蓝色点是命中,红色点是未击中。 挑几个有特色的:
1.哈登
魔球的效果非常明显。 我绝对不会做两点这样低效的事情。
2.西蒙斯
经典中心
3.德拉赞
CIC小王子
4.字母哥
你被扣在篮下了!
5.咖喱
这需要向所有人展示...
6.科比·布莱恩特
生涯累计图,各个方向无盲点,包括篮板背后的负角度
我们来看看具体步骤。 我们以刚刚获得本赛季总冠军戒指的林书豪为例。
03 获取数据
NBA有一个官方统计网站:上面有各种数据,可以说是一个宝藏。
从网页上,没有找到我这次需要的数据。 但经过一番搜索,我发现了该网站的开放接口API。 您可以在该项目中查看相关接口和文档:
- API 用于
/...
通过以下接口,我们可以获取指定赛季某球员的详细投篮数据:
/统计/s...
该参数用于查询玩家的ID。 这个ID可以通过在网页上搜索玩家的名字从相应的URL中获得。 比如说,林书豪就是。
//...
链接中的两个 2018-19 是赛季参数。 你可以把它们改到其他季节,但我尽量不要太早。 1996年左右之前没有数据nba球员数据查询,早期数据的准确性较差。
您可以保留其他参数。
使用库可以轻松获取结果(需要添加):
= .get(url, =,=5)
04 解析数据
返回的数据是JSON格式,可以将其转换成格式nba球员数据查询,方便后续处理:
data = .json()# 获取列名,即每个投球的含义 data = data''['']# 获取投球相关数据 shot = data''['']# = pd.(射击,=)
我们关心的数据是LOC_X、LOC_Y(射击位置)和(射击是否成功)这三列。
05 绘制拍摄点
可以使用库的散点图绘制方法来绘制拍摄点。 我们在之前的各种案例中多次使用过这个:
制作 = [['']==1]miss = [['']==0]plt.(miss.LOC_X, miss.LOC_Y, color='r', ='.', alpha=0.3)plt. (made.LOC_X, made.LOC_Y, color='b', ='.', alpha=0.3)
我们通过参数设置点的大小和透明度,让显示更清晰。
06 绘制间距
拍摄点是画出来的,但这不够直观。 让我们添加另一张体育场的照片。
这是通过Li、Arc等方法拼出来的,没有什么特别的技术,但是代码相当繁琐,这里就不贴出来了。 (如果你愿意,你甚至可以用它来画小猪佩奇)
07 添加头像
最后给数据图添加头像,让数据图看起来更完整。 头像地址:
/media/p...:///wp-///nba///.png
文件名仍然是玩家的ID,但是这个地址并不是对所有玩家都有效,所以可以做异常处理。
pic = ..("/media///.png")# 读取的图像可以绘制 = plt.(pic[0])# 将播放器图像放置在右上角,并设置缩小级别以匹配整个image img = (, Zoom=0.6)# (x, y) 控制将玩家放置在想要的位置 img.((540,640))# 添加玩家图像 Fig.gca().(img)
如果你电脑上的位置错误,记得修改该值(不同系统甚至不同编译器之间可能会有差异)。
最终效果:
本文标签: nba球员数据查询
上一条:全民皆兵体系雏形显露新疆男篮打出理想中的团队篮球
下一条:国青球员李弘权:中国国籍是中国还是加拿大?