当前位置:首页 > 篮球新闻 > 正文

编程教室:视频制作的注意事项!

nba球员位置字母_球员位置介绍_nba球员位置图

球员位置介绍_nba球员位置字母_nba球员位置图

01 视频版

对于这个数据分析案例,我做了一个视频版本,解释了代码nba球员位置图,讲了操作的注意事项以及一些利弊、供需。 我在视频制作方面经验不是很丰富,所以请耐心等待。 (视频中有彩蛋

写完本文案例的代码后,我将其发布到了虎扑上。 结果被推荐到首页,浏览量超过25万,回复近800条……谢谢JR们的夸奖!

nba球员位置图_球员位置介绍_nba球员位置字母

原始图像、更多玩家生成的结果和完整代码可以在以下 URL 找到:

NBA投篮得分统计代码:

生成的数十位足球明星的照片:

提取码:jbpw

02 效果展示

像往常一样,我们先看一下结果。 每个点都是一次射击,蓝色点是命中,红色点是未击中。 挑几个有特色的:

1.哈登

nba球员位置图_nba球员位置字母_球员位置介绍

2.西蒙斯

nba球员位置字母_球员位置介绍_nba球员位置图

3.德拉赞

nba球员位置字母_nba球员位置图_球员位置介绍

4.字母哥

nba球员位置字母_nba球员位置图_球员位置介绍

5.咖喱

球员位置介绍_nba球员位置字母_nba球员位置图

6.科比·布莱恩特

nba球员位置图_球员位置介绍_nba球员位置字母

我们来看看具体步骤。 我们以刚刚获得本赛季总冠军戒指的林书豪为例。

03 获取数据

NBA有一个官方统计网站:上面有各种数据nba球员位置图,可以说是一个宝藏。

从网页上,没有找到我这次需要的数据。 但经过一番搜索,我发现了该网站的开放接口API。 您可以在该项目中查看相关接口和文档:

- API 用于

通过以下接口,我们可以获取指定赛季某球员的详细投篮数据:

+&=0&=&=&模式=&=0&=1&=0&=

该参数用于查询玩家的ID。 这个ID可以通过在网页上搜索玩家的名字从相应的URL中获得。 比如说,林书豪就是。

链接中的两个 2018-19 是赛季参数。 你可以把它们改到其他季节nba球员位置图,但我尽量不要太早。 1996年左右之前没有数据,早期数据的准确性较差。

您可以保留其他参数。

使用库可以轻松获取结果(需要添加):

response = requests.get(url, headers=headers,timeout=5)

04 解析数据

返回的数据是JSON格式,可以将其转换成格式,方便后续处理:

data = response.json()
# 获取列名即每项投球数据的意思
headers = data['resultSets'][0]['headers']
# 获取投球的相关数据
shots = data['resultSets'][0]['rowSet']
# 转 DataFrame
shot_df = pd.DataFrame(shots, columns=headers)

nba球员位置图_球员位置介绍_nba球员位置字母

我们关心的数据是LOC_X、LOC_Y(射击位置)和(射击是否成功)这三列。

05 绘制拍摄点

可以使用库的散点图绘制方法来绘制拍摄点。 我们在之前的各种案例中多次使用过这个:

made = shot_df[shot_df['SHOT_MADE_FLAG']==1]
miss = shot_df[shot_df['SHOT_MADE_FLAG']==0]
plt.scatter(miss.LOC_X, miss.LOC_Y, color='r', marker='.', alpha=0.3)
plt.scatter(made.LOC_X, made.LOC_Y, color='b', marker='.', alpha=0.3)

我们通过参数设置点的大小和透明度,让显示更清晰。

nba球员位置图_球员位置介绍_nba球员位置字母

06 绘制间距

拍摄点是画出来的,但这不够直观。 让我们添加另一张体育场的照片。

nba球员位置字母_nba球员位置图_球员位置介绍

这是通过Li、Arc等方法拼出来的,没有什么特别的技术,但是代码比较繁琐,这里就不贴出来了。 (如果你愿意,你甚至可以用它来画小猪佩奇)

07 添加头像

最后给数据图添加头像,让数据图看起来更完整。 头像地址:

或者

文件名仍然是玩家的ID,但是这个地址并不是对所有玩家都有效,所以可以做异常处理。

pic = urllib.request.urlretrieve("http://stats.nba.com/media/players/230x185/202391.png")
# imread 读取的图像可以被 matplotlib 绘制
head_pic = plt.imread(pic[0])
# 将球员图片放置于右上角,并设置缩小等级以配合整个图片
img = OffsetImage(head_pic, zoom=0.6)
# (x, y) 控制将球员放在你想要放的位置
img.set_offset((540,640))
# 添加球员图片
fig.gca().add_artist(img)

如果你电脑上的位置错误,记得修改该值(不同系统甚至不同编译器之间可能会有差异)。

最终效果:

nba球员位置字母_球员位置介绍_nba球员位置图

有话要说

Q:谁的统计图给你印象最深?

展开全文阅读