R爬虫&可视化第五季-图解欧洲足球五大联赛

栏目: R语言 · 发布时间: 6年前

作者: 徐麟 ,数据分析师,就职于上海唯品会。

热爱数据挖掘和分析,喜欢用R、 Python 玩点不一样的数据。

个人公众号:数据森麟(微信ID:shujusenlin) 

前言:

R爬虫&可视化系列文章来到了第五季,我们来聊聊欧洲足球五大联赛。本人作为一个不会踢球的资深球迷,俗称“懂球帝”,今天就与大家用数据分析一下2017-2018赛季欧洲五大联赛的各项指标。

数据爬取:

本次数据爬取我们选择的是虎扑网站,虎扑网站作为大型的体育类资讯网站,可以作为足球类数据的来源。爬取分为两部分,球员资料和比赛统计,比较好的一点是虎扑网站上的数据是以表格形式进行存储,如下图所示:

R爬虫&可视化第五季-图解欧洲足球五大联赛

R爬虫&可视化第五季-图解欧洲足球五大联赛

上图中由于虎扑球队信息更新不是特别及时,我们会在后期把这部分数据和比赛数据做inner join。循环爬取表格的方法基本上是相似的,下面只展示其中一场比赛的数据爬取,球员基本信息爬取与其类似:

  1. i=10854899 ##网站比赛编号,作为循环因子即可

  2. url <- sprintf('https://g.hupu.com/soccer/data_%d.html',i)

  3. temp <- getURL(url,.encoding='utf-8')

  4. doc <-htmlParse(temp)

  5. players <- readHTMLTable(doc)

  6. home <- players$table_home_players_stats

  7. away <- players$table_away_players_stats

  8. ## 判断数据是否爬取,home_row,away_row均大于1说明数据成功爬取

  9. home_row <- nrow(home)

  10. away_row <- nrow(away)

数据分析:

PART1:五大联赛比赛数据对比

首先我们通过几个维度对比五大联赛比赛的特点,在pc端我们使用subplot将四幅对比图放在一起,使得对比更加直观:

R爬虫&可视化第五季-图解欧洲足球五大联赛

通过以上指标我们发现英超的球队平均每场犯规次数远低于其他四大联赛,黄牌数量也较少,这与英超宽松的吹罚尺度有着密切的联系。西甲的越位和黄牌数量在五大联赛中均处于领先位置,严格的吹罚尺度更加有利于技术流的发展。

法甲的整体射门转化率在五大联赛中处于最低位置,一方面是由于一些神级门将的发挥(上届世界杯有着神级发挥的奥乔亚就曾在法甲让大巴黎37脚射门仅进1球),另一方面想必法甲也培养了一批的“吐饼王”。

部分代码如下:

  1. ## 球队平均每场犯规数绘制,其他图同理

  2. p1 <- ggplot(league_stat,aes(x=联赛,y=平均每队犯规,fill=联赛))+

  3.    geom_boxplot()+

  4.    scale_color_few()+theme_economist()+ggtitle('球队平均每场犯规数')+

  5.    theme(axis.title = element_blank(),

  6.          plot.title = element_text(hjust=0.5,size=17),

  7.          axis.text.x = element_text(size = 15),

  8.          legend.position = 'NONE')  

  9. ## 设置subplot的行、列数

  10. grid.newpage()

  11. pushViewport(viewport(layout=grid.layout(2,2)))

  12. vplayout<-function(x,y){viewport(layout.pos.row =x,layout.pos.col=y)}

  13. ## 将ggplot放置在subplot中

  14. print(p1,vp=vplayout(1,1))

  15. print(p2,vp=vplayout(1,2))

  16. print(p3,vp=vplayout(2,1))

  17. print(p4,vp=vplayout(2,2))

PART2:球员对比

我们首先挑选四项重要指标,进球效率,助攻效率,被犯规频率和扑救成功率的TOP20。其中被犯规频率需要考虑到联赛整体的吹罚尺度,所以计算时会乘以联赛的吹罚系数。下面战死四项指标的组合图:

R爬虫&可视化第五季-图解欧洲足球五大联赛

进球效率TOP5:卡瓦尼,法尔考,伊卡尔迪,因莫比莱,迪巴拉

助攻效率TOP5:格德斯,夸德拉多,皮亚尼奇,博格巴,达胡德

被犯规速率TOP5:内马尔,巴恩斯,桑切斯,埃尔南德斯,萨尔

扑救成功率TOP5:奥布拉克,波普,特尔施特根,德赫亚,纳瓦斯

内马尔在对手眼中是个极大的威胁,帮助他最常被侵犯排行榜TOP1,希望内少保重身体,明年世界杯就要来了。格德斯和奥布拉克分列助攻和扑球榜榜首,想必已经引起各大豪门的注意。

之前被诟病的卡瓦尼此次荣登进球效率榜首尾有些出人意料,看来大家的直觉和数据本身有时会有偏差。

另外一个大家很关心的问题就是谁拥有球队绝对开火权,我们选取了射门数量占全队百分比的TOP20,并且对比其射门转化率:

R爬虫&可视化第五季-图解欧洲足球五大联赛

梅西、凯恩、C罗、巴洛特利、哲科分列前五位,可见其在球队的地位,巴神在TOP5中射门转化率最高,看来近期状态不错。C罗可能是把进球的感觉都留在了杯赛中,联赛射门转化率不甚理想。

汤姆因斯和卡罗尔两位的射门转化率均为0,这并不是数据缺失,而是这两位确实没有进球,下半赛季两位都需要做出改变。

这部分代码涉及到了melt函数,如下所示:

  1. ord <- order(player_stat$射门占比,decreasing = TRUE)

  2. player_stat_shemen <- player_stat[ord,][1:20,]

  3. player_stat_shemen <- melt(player_stat_shemen,id=c('球员名','射门占比'),

  4. measure=c('射门占比','射门转化率'))

PART3:联赛球员属性对比

我们最后看一下各大联赛球员的属性,重点是对比年龄和国籍分布情况,首先我们看一下五大联赛整体的对比情况:

R爬虫&可视化第五季-图解欧洲足球五大联赛

R爬虫&可视化第五季-图解欧洲足球五大联赛

五大联赛中英超外籍球员出场占比,上场球员平均年龄两项指标均高于其他几大联赛。对此本公众号推测足协正是看到了“欧洲中国队”联赛的现状,所以制定出了“标新立异“的u23和外援新政。

最后我们用地图的视角看一下五大联赛的球员国籍分布:

以西甲静态图为例,颜色深浅表示不同国籍的球员出场总时长情况:

R爬虫&可视化第五季-图解欧洲足球五大联赛

下面是五大联赛的动态GIF图表,由于公众号图片上传大小的限制,所以可能看的不是特别清晰,每次图片的切换代表不同联赛之间的切换:

R爬虫&可视化第五季-图解欧洲足球五大联赛

该部分重要代码如下:

  1. p <- echartr(huizong,x=英文名,y=总时间,type='map_world',

  2.    t=联赛,subtype="move + scale")%>%

  3.    setDataRange(valueRange=c(0,20000))

动态图中可以看到,各大联赛的球员国籍分布还是存在些许的差异,在此就不进行详细的展开说明。关于五大联赛的分析暂时就到这里,后续大家关于这方面有更多分析的点可以留言进行交流

R爬虫&可视化第五季-图解欧洲足球五大联赛

公众号后台回复关键字即可学习

回复 爬虫 爬虫三大案例实战  

Python

1小时破冰入门

回复 数据挖掘  R语言入门及数据挖掘

回复  人工智能 三个月入门人工智能

回复  数据分析师 数据分析师成长之路 

回复 机器学习 机器学习的商业应用

回复  数据科学 数据科学实战

常用算法

常用数据挖掘算法

R爬虫&可视化第五季-图解欧洲足球五大联赛

本文由R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。

转载、引用前需联系作者,并署名作者且注明文章出处。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

可用性工程

可用性工程

尼尔森 / 刘正捷 / 机械工业出版社 / 2004-1 / 28.00元

《可用性工程》系统地介绍可用性工程,被国际可用性工程界一致推崇为该领域的最佳入门书籍。《可用性工程》着重讲述了能取得良好成本效益的可用性方法,并详细介绍了在软件开发生命周期的不同阶段如何运用这些方法,以及其他与可用性相关的特殊问题。一起来看看 《可用性工程》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换