点击上方“简说Python”,选择“置顶/星标公众号”
关键时刻,第一时间送达!
2015年6月,当时,金州勇士队作为一匹黑马收到很多人看好,果然不负所望,勇士队一路过关斩将一举拿下了总冠军。也是在那个时候,由于库里的出色表现,给大家留下了深刻的印象,成为勇士当家球员。
可以说,从那时起,勇士队开始起飞了。2016年,记得那时候我正在忙着高考,也是在那个时候,新一轮的NBA总决赛的开始了,热血的我们对篮球也是格外热爱,每次晚上寝室熄灯后,我们讨论最多的不是《兰亭集序》怎么背,几何图形怎么解,是篮球,有人喜欢库里,那个时候三分超级厉害,有人喜欢詹姆斯,神一般的人物,很多人都期望着詹姆斯能给俄城带来一座奖杯,不负众望,最终3比4,骑士获得总冠军。
但随后2017和2018年勇士又相继拿下了总冠军,勇士四年拿下三个总冠军,这在NBA历史上也是很少有的成绩了。
我并不是勇士队的球迷,但我却想知道究竟是什么原因让它可以突然出现在人们眼前,并且可以不断地创造辉煌。这背后肯定是有原因的,大家各有各的说法,但我觉得数据不会说谎,我想通过数据来分析勇士队成功背后的原因。
对于数据源,我并没有采用爬虫去采集数据,因为我的重点是分析数据,因此选择直接使用了现有数据源。
数据源来自Kaggle,提供了2012-2018年的所有球员的个人技术统计和球队战绩,链接如下:
https://www.kaggle.com/pablote/nba-enhanced-stats
本篇采用2017-18年的统计数据对勇士队进行分析。
▍技术指标排名
对所有球队的技术指标进行场均值排名,包括均分,均助攻,均盖帽,均二分球得分率,均三分球得分率,并只针对排名前五名进行可视化对比。
1. 场均得分排名
勇士队场均得分113.46,排名第一
2. 场均排名
勇士队场均助攻29.32,排名第一
3. 场均盖帽排名
勇士队场均盖帽7.45,排名第一
4. 场均二分球得分率排名
勇士队场均二分球命中率0.56,排名第一
5. 场均三分球得分率排名
勇士队场均三分球命中率0.39,排名第一
我们查看了五个主要技术指标,勇士队均是排名第一,常规赛的数据要不要太完美,无论进攻还是防守数据都非常亮眼。
既然勇士队得分均排名第一,那么我们想要看一下在勇士队胜场和负场中,两分球和三分球的得分情况。下面通过可视化将胜负场和两分与三分关系图联系起来观察。
左侧图为所有比赛中两分球得分率与三分球得分率的散点关系图。右侧图为所有比赛中队伍总得分与对手总得分的关系图(红色为负场,绿色为胜场)。并且,左右这两个图的点是一一对应的。
通过左图得到一些基本观察:
通过上面二者关系分析,我们把两分球得分率45%以上,且同时三分球得分率30%以上的比赛定义为正常发挥,而其它一个高一个低或者都低的离散点定义为失常发挥。
通过右图得到一些基本观察:
下面对图形进行动态的交互式操作,将两个图联系起来进一步详细分析。
胜场得分情况
胜场中对应的两分和三分得分率还是很集中的,基本符合我们所说的正常发挥情况。
败场得分情况
败场中对应的两分和三分得分率比较离散,有些正常发挥的情况下也输了比赛,不过数量不多,应该是棋逢对手,遇到强队了。
总体来说,勇士队发挥比较稳定,且在正常发挥的情况下大多抓住了机会,拿下了比赛,获得了常规赛季58胜24负的卓越战绩,排名第一是有道理的。
交互式可视化部分代码如下:
from bokeh.plotting import figure,
bokeh.io output_file
bokeh.models ColumnDataSource, CategoricalColorMapper, NumeralTickFormatter
bokeh.layouts gridplot
gm_stats_cds = ColumnDataSource(phi_gm_stats_2)
output_file(,
title=)
win_loss_mapper = CategoricalColorMapper(factors = [, ], palette=[, ])
toolList = [, , , ]
pctFig = figure(title=,
plot_height=, plot_width=, tools=toolList,
x_axis_label=, y_axis_label=)
pctFig.circle(x=, y=, =gm_stats_cds,
=, color=)
pctFig.xaxis[].formatter = NumeralTickFormatter(=)
pctFig.yaxis[].formatter = NumeralTickFormatter(=)
totFig = figure(title=,
plot_height=, plot_width=, tools=toolList,
x_axis_label=, y_axis_label=)
totFig.square(x=, y=, =gm_stats_cds, =,
color=dict(=, transform=win_loss_mapper))
grid = gridplot([[pctFig, totFig]])
(grid)
看过NBA比赛的朋友都知道,勇士队三分球特别牛逼,动不动就来一顿三分雨真是让对手受不了。下面我们来看一下勇士队球员三分球在NBA所有队伍中是个什么水平,什么如此厉害。
由于一些位置(比如中锋)几乎没有三分,因此我过滤掉了所有投射三分球次数低于100的球员。
下面是交互式操作展示了勇士队的三分命中率情况。
图中x轴为三分总投射次数,y轴为三分球命中的次数,样本是投射三分球次数大于100的所有NBA球员。红色为勇士队队员,蓝色为其它非勇士队队员。
我们看到,在所筛选的球员中,勇士队一共有7人。其中4人命中率在40%以上,分别是斯蒂芬.库里,克莱.汤普森,凯文.杜兰特,奎因.库克。而尼克杨也是基本接近40%的。这么人的高命中率真的很吓人,虽在不同位置,却都有着惊人的三分准确率,这确实让勇士队在三分球上占据绝对的优势了。
下面我们继续深度追踪一下勇士队连续比赛期间随时间变化而有的一些技术影响。还是一样,对于这种复杂的观察,我们借助交互式可视化来进行分析。
图中4个图是关联的,分别记录得分,助攻,篮板,失误随比赛连续进行二出现的情况。红色为负场,绿色为胜场。
通过上面观察,我们可以看到常规赛季在前阶段很少出现失败,大部分都是一直连胜的。而到最后阶段,即66至75之间,出现了连续的失败,次数偏多。很明显地,这个时候的技术指标度不如前阶段。前面一路高歌,最后阶段输球多的原因可能是战术性的放水,或者是怕球员受伤,为最后季后赛以及总冠军养精蓄锐。
可视化分析实现部分代码如下:
bokeh.plotting figure, show
bokeh.io output_file
bokeh.models ColumnDataSource, CategoricalColorMapper, Div
bokeh.layouts gridplot, column
output_file(,
title=)
gm_stats_cds = ColumnDataSource(gs_gm_stats)
grid = gridplot([[stat_figs[], stat_figs[]],
[stat_figs[], stat_figs[]]])
stat_figs[].x_range =
stat_figs[].x_range =
stat_figs[].x_range =
stat_figs[].x_range
html =
sup_title = Div(text=html)
show(column(sup_title, grid))
我们通过可视化再看一下勇士队里所有队员的平均得分,助攻,抢断,篮板对比情况。下面饼形图展示了所有球员的个人技术指标。
从上面可视化分析观察到:得分(PTS)来看,贡献最大的前两名是库里和杜兰特,场均都约26.3分,第三名汤神略逊一筹场均约20分,第四是格林11分。助攻(AST)来看,格林排第一,场均7.2个助攻,库里第二,场均6助攻,然后是杜兰特场均5.4助攻。
从上面可视化分析观察到:抢断(STL)来看,库里最多,场均1.56抢断,第二是格林,场均1.36抢断,第三是伊戈达拉。盖帽(BLK)来看,杜兰特排第一,场均1.75个封盖,格林第二,场均1.3个封盖,然后是维斯特场均1封盖。
从这4个技术指标来看,库里和杜兰特无疑是球队的核心了,得分并列第一,助攻前三,其次是汤神。但同时,还有另一个非常关键的人物,格林。如果仔细观察,你会发现虽然格林除了在得分中排第四,其它每个指标中都是前三。不得不说,这位球员真的非常全面,防守助攻能力特别强,并且也有自己的得分手段。此外,伊戈达拉也同样拥有着不错的表现。基于这种实力的排位,这五位也是上赛季常规赛勇士队的首发五虎阵容。
可视化部分代码实现如下:
fig = {
: [
{
: gs_players_pts[],
: gs_players_pts.index,
: {: [, ]},
: ,
: ,
:
},
{
: gs_players_pts[],
: gs_players_pts.index,
:[],
:,
: {: [, ]},
: ,
: ,
:
}],
: {
:,
: [
{
: {
:
},
: ,
: ,
: ,
:
},
{
: {
:
},
: ,
: ,
: ,
:
}
]
}
}
py.iplot(fig)
核心球员是整个球队的关键,因此下面对勇士核心球员库里与詹姆斯进行一下简单的对比,分别从总投篮命中率,两分命中率,三分命中率,罚球命中率来对比一下。
库里 vs 詹姆斯
上面左右两图的比例不同,因此大小面积不能代表能力强。
可以发现詹皇在个人突破强吃得分上很占优势,两分球命中率极高,而库里更擅长投篮的三分球得分。二人风格不同,但都具有超强的个人能力和领袖气质,实力上是旗鼓相当的。
下面是杜兰特与詹姆斯的篮板和得分情况对比。
参考:https://realpython.com/python-data-visualization-bokeh/
▍总结
本篇通过数据可视化分析了金州勇士队的战绩和个人技术指标,以及在整个联盟中的位置,并通过交互式可视化深度研究了勇士队的分数,进球率对胜负的影响。数据告诉我们,勇士队的实力目前在整个联盟确实是数一数二的,并且拥有几个超强的核心坐镇,4年3夺冠也是实至名归。
PS:本人不是勇士队粉丝,只是想通过数据进行分析夺冠原因,不代表任何意见。
简说Python【读者福利】 ↓↓↓
公众号内回复:001 获取Python学习资源
002 获取Java学习资源
003 获取其他学习资源
加老表微信,可以求任何学习资源
往期精彩推荐 ↓↓↓
【1】
【2】
【3】
不失联,扫码加老表微信学习交流
欢迎大家 转发,留言,点赞 支持老表。
文末广告点一下也是对老表莫大的支持。
争做知识的传播者,随手转发。