炼数成金 门户 商业智能 数据可视化 查看内容

图解欧洲足球五大联赛

2017-12-27 13:16| 发布者: 炼数成金_小数| 查看: 13281| 评论: 0|原作者: 徐麟|来自: R语言中文社区
摘要: 本次数据爬取我们选择的是虎扑网站,虎扑网站作为大型的体育类资讯网站,可以作为足球类数据的来源。爬取分为两部分,球员资料和比赛统计,比较好的一点是虎扑网站上的数据是以表格形式进行存储。我们发现英超的球队 ...
存储
数据爬取
本次数据爬取我们选择的是虎扑网站,虎扑网站作为大型的体育类资讯网站,可以作为足球类数据的来源。爬取分为两部分,球员资料和比赛统计,比较好的一点是虎扑网站上的数据是以表格形式进行存储,如下图所示:

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

i=
10854899
 
##网站比赛编号,作为循环因子即可
url <- sprintf(
'https://g.hupu.com/soccer/data_%d.html'
,i)
temp <- getURL(url,.encoding=
'utf-8'
)
doc <-htmlParse(temp)
players <- readHTMLTable(doc)
home <- players$table_home_players_stats
away <- players$table_away_players_stats
## 判断数据是否爬取,home_row,away_row均大于1说明数据成功爬取
home_row <- nrow(home)
away_row <- nrow(away)

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


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

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

## 球队平均每场犯规数绘制,其他图同理
p1 <- ggplot(league_stat,aes(x=联赛,y=平均每队犯规,fill=联赛))+
    geom_boxplot()+
    scale_color_few()+theme_economist()+ggtitle(
'球队平均每场犯规数'
)+
    theme(axis.title = element_blank(),
          plot.title = element_text(hjust=
0.5
,size=
17
),
          axis.text.x = element_text(size = 
15
),
          legend.position = 
'NONE'
)  
## 设置subplot的行、列数
grid.newpage()
pushViewport(viewport(layout=grid.layout(
2
,
2
)))
vplayout<-
function
(x,y){viewport(layout.pos.row =x,layout.pos.col=y)}
## 将ggplot放置在subplot中
print
(p1,vp=vplayout(
1
,
1
))
print
(p2,vp=vplayout(
1
,
2
))
print
(p3,vp=vplayout(
2
,
1
))
print
(p4,vp=vplayout(
2
,
2
))

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


进球效率TOP5:卡瓦尼,法尔考,伊卡尔迪,因莫比莱,迪巴拉
助攻效率TOP5:格德斯,夸德拉多,皮亚尼奇,博格巴,达胡德
被犯规速率TOP5:内马尔,巴恩斯,桑切斯,埃尔南德斯,萨尔
扑救成功率TOP5:奥布拉克,波普,特尔施特根,德赫亚,纳瓦斯

内马尔在对手眼中是个极大的威胁,帮助他最常被侵犯排行榜TOP1,希望内少保重身体,明年世界杯就要来了。格德斯和奥布拉克分列助攻和扑球榜榜首,想必已经引起各大豪门的注意。
之前被诟病的卡瓦尼此次荣登进球效率榜首尾有些出人意料,看来大家的直觉和数据本身有时会有偏差。

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


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

汤姆因斯和卡罗尔两位的射门转化率均为0,这并不是数据缺失,而是这两位确实没有进球,下半赛季两位都需要做出改变。
这部分代码涉及到了melt函数,如下所示:

ord <- order(player_stat$射门占比,decreasing = TRUE)
player_stat_shemen <- player_stat[ord,][
1
:
20
,]
player_stat_shemen <- melt(player_stat_shemen,id=c(
'球员名'
,
'射门占比'
),
measure=c(
'射门占比'
,
'射门转化率'
))

PART3:联赛球员属性对比
我们最后看一下各大联赛球员的属性,重点是对比年龄和国籍分布情况,首先我们看一下五大联赛整体的对比情况:
五大联赛中英超外籍球员出场占比,上场球员平均年龄两项指标均高于其他几大联赛。对此本公众号推测足协正是看到了“欧洲中国队”联赛的现状,所以制定出了“标新立异“的u23和外援新政。

最后我们用地图的视角看一下五大联赛的球员国籍分布:
以西甲静态图为例,颜色深浅表示不同国籍的球员出场总时长情况:


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


该部分重要代码如下:
p <- echartr(huizong,x=英文名,y=总时间,type=
'map_world'
,
    t=联赛,subtype=
"move + scale"
)%>%
    setDataRange(valueRange=c(
0
,
20000
))

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花

握手

雷人

路过

鸡蛋

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

  GMT+8, 2018-1-14 15:52 , Processed in 0.144051 second(s), 25 queries .