640?wx_fmt=gif


近看了一篇文章是有关于NBA球员出手数据的可视化案例,文链接如下。


虎扑热帖|Python数据分析|NBA的球星们喜欢在哪个位置出手


个人感觉比较有趣,所以想着自己也来实现一波。


总体上来说差不多,可能就是美观点吧...



/ 01 / 篮球场


从网上找的篮球场尺寸图,如下。


640?wx_fmt=png


其中单位为英尺,NBA的球场尺寸为94英尺长,50英尺宽。


下图是我用CAD绘制半场尺寸图,本次绘图就是按照下面这个尺寸来的。


640?wx_fmt=png


有了尺寸,接下来就可以使用matplotlib进行绘制篮球场了。


主要是绘制矩形、圆形以及圆弧。


具体代码如下。


 
 


最后得到下图。


640?wx_fmt=png

下面去获取球员的投篮数据。



/ 02 / 投篮数据


投篮数据来源于NBA官方网站——NBA Stats。


640?wx_fmt=png


在这个网页下打开开发者工具,找到下面这个请求。


640?wx_fmt=png


便能获取到球员的投篮数据,本次只获取球员的投篮点及是否得分的数据。


这里以「库里」为例,爬取代码如下。


 
 


获取到的数据如下。


640?wx_fmt=png


其中可以通过设置球员ID以及赛季时间来获取不同的数据。


球员ID和赛季时间可以通过官网中的球员信息网页了解到。



/ 03 / 数据可视化


现在球场有了,投篮数据也有了,就可以来画图了。


使用matplotlib的散点图来实现。


 
 


得到下图。


640?wx_fmt=png


来和官网的图对比一下。


640?wx_fmt=png


看起来还不错,匹配度还是蛮高的。


下面绘制投篮热力图,通过seaborn绘制,代码如下。



得到结果如下。


640?wx_fmt=png


还是来看一下官网的图。


640?wx_fmt=png


两个效果都不错,不过边框我没调好,显得没那么好看。


库里投篮最密集的区域,篮下和三分线。

最后看一下于小F而言,印象比较深的球员,科比霍华德


科比的ID为977,职业生涯时间为1996年到2012年。


640?wx_fmt=png


全线开花,不少负角度投篮,甚至还有超远三分。


640?wx_fmt=gif


霍华德的ID为2730,职业生涯时间为2004年到2019年。


640?wx_fmt=png


魔兽霍华德,屈指可数的三分。


其他都是围绕着篮板的得分。


640?wx_fmt=gif


还有好多球员,就靠大伙自己去看啦!



/ 04 / 总结


好了,本次更文到此结束。


感兴趣的小伙伴可以自行动手,操作一波。

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐