失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > R语言数据可视化案例(世界杯球员信息数据可视化)

R语言数据可视化案例(世界杯球员信息数据可视化)

时间:2022-11-26 16:04:14

相关推荐

R语言数据可视化案例(世界杯球员信息数据可视化)

R语言数据可视化案例(世界杯球员信息数据可视化)

世界杯球员案例数据预处理

世界杯球员案例

在 faraway 包中包含一个名为 worldcup 的数据集(加载 faraway 包后,可通过代码“head(worldcup)”查看数据的前 5 行,该数据集是 年世界杯上球员的信息数据,每个变量所表示的信息如下:

Team: 国家

Position:位置,包括后卫、前锋、守门员、中场

Time: 上场总时间

Shots: 射门的次数

Passes:传球次数

Tackles:铲球次数

Saves: 救球次数

数据预处理

数据概况:

> head(world)Team Position Time Shots Passes Tackles SavesAbdounAlgeria Midfielder 1606 00Abe Japan Midfielder 3510 101140Abidal France Defender 180091 60Abou Diaby France Midfielder 2701 111 50Aboubakar Cameroon Forward 46216 00Abreu Uruguay Forward 7 00

该数据集中,数据集包含595个样本,共有7个特征。其中Team,Postition是分类变量,后面的都是数值型变量,其中行名是球员名字。

导入需要的包和数据集,导入需要的包和数据集;

library(faraway)library(ggplot2)head(worldcup)attach(worldcup)?worldcupworld=worldcup

上场时间和传球数量的关系

#给散点图变成以颜色做区分位置队伍p <- ggplot(data=world, mapping=aes(x=world$Time, y=world$Passes, shape=world$Position, colour=world$Team))p+geom_point()

运行结果

由图形可看出,各球员上场时间多集中于 400 以内,传球次数也对应集中于 200以内,其中 Midfifielder 位置的上场时间和传球次数较为出众。同时一定程度上,上场时间越长,传球数越大。

3.不同位置射门次数直方图

#不同位置射门次数直方图ggplot(world)+geom_histogram(aes(x=world$Shots))ggplot(world)+geom_histogram(aes(x=world$Shots, fill=world$Position))

运行结果

由图可发现,大部分球员射门次数集中于 5 个以内,其中 Defender 射门次数较少,而 Forward 射门表现较为优异,符合常理。

4.不同队伍射门次数直方图

#不同队伍射门次数直方图ggplot(world)+geom_histogram(aes(x=world$Shots, fill=world$Team))ggplot(world)+geom_histogram(aes(x=world$Shots, fill=world$Team), position="dodge")

运行结果

5.不同队伍射门次数直方图

#箱型图ggplot(world)+geom_boxplot(aes(x=world$Team, y=world$Shots,fill=world$Team))+coord_flip()#不同队伍射门次数

运行结果

由图可知 Brazil 队射门次数平均较高,但无极端异常高的值,可推测其与队伍战术风格有关,以进攻为主,但各队员水平相近,表现稳定,而 Ghana 等队虽然整体平均还行,但是有一个极端高值,可推测是有球员表现尤为优异,带动队伍射门进攻。

6.绘制球员分布国家地图可视化

n=rep(1,595)#设定重复的1world=cbind(world,n)number<-aggregate(x = world$n, by= list(world$Team), FUN = sum)#计算各个国家球员数colnames(number)<-c("nation","number")library(map)library(REmap)result <- remapC(number,maptype = 'world',color = 'red',theme = get_theme('Sky'),maxdata = 20, mindata = 14)print(result)

运行结果

可通过地理信息数据发现,球队主要来源于西半球,各队伍成员数量较为相近,无过于显著的差异。

其中,安装REmap时,常规方式安装会报错,可利用下面方式解决:

install.packages("devtools")library(usethis)library(devtools)install_github("Lchiffon/REmap")library(REmap)

绘制球员人数分布直方图

#分布直方图par(mai=c(0.9, 0.9, 0.6, 0.3)) #图形边缘空白(边距)的宽度hist(number$number, col="lightblue", border="red", labels = TRUE,ylim=c(0, 20),main="运动会各队总人数分布")

运行结果

可发现人数分布服从近似正态分布。

8.对不同位置人员进行上场时间与射门次数的分析

#对不同位置人员进行上场时间与射门次数的分析ggplot(worldcup,mapping = aes(x=Time,y=Shots,colour = Position))+geom_point()

运行结果

由图可发现,Forward 的射门次数都较高于其他位置,符合常理。

9.国家与射门次数之间的关系

#国家与射门次数之间的关系ggplot(world,aes(x=world$Team,y=world$Shots,fill=world$Team))+theme_bw(base_family="STKaiti")+geom_bar(aes(fill=rownames(worldcup)),stat="identity",show.legend=F)+coord_flip()

运行结果

从整体来看,Spain 总的射门次数最多,可看出在比赛中处在上风。Honduras 较少处于劣势。

10.每个运动员上场时间及射门次数关系

library(treemap); library(readr); library(dplyr)plays<-as.data.frame(rownames(world))#每个球员上场时间plays<-cbind(plays,world$Time,world$Shots)#球员对应上场时间及射门colnames(plays)<-c("player","time","shots")treemap(plays,index = c("player"),vSize = "time", vColor= "shots",type="value",palette="RdYlGn", title = "每个运动员上场时间及射门次数关系",fontfamily.title = "STKaiti", title.legend= "数量",fontfamily.legend="STKaiti")

运行结果

图形宽度代表上场时间,颜色深浅代表射门次数。可发现 Gyan,Villa 球员上场时间多,射门次数也多,是团队核心成员,而 Jong Tae-Se 上场时间中等,但射门次数较多,是很有潜力的成员。通过这个图寻找核心成员,同时挖掘潜力成员。

11.球员上场时间分布图

#球员上场时间分布图ggplot(worldcup,aes(x=reorder(rownames(worldcup),Time),y=Time))+theme_bw(base_family="STKaiti")+geom_bar(aes(fill=Time),stat="identity",show.legend = F)+coord_flip()+scale_fill_gradient(low="#56B1F7",high ="#132B43")+labs(x="球员",y="各个球员上场总时间分布",title="上场时间")+theme(axis.text.x =element_text(vjust = 0.5),plot.title=element_text(hjust=0.5))

运行结果

12.#位置、射门、救球、传球、铲球之间的关系(散点矩阵图)

#位置、射门、救球、传球、铲球之间的关系library(GGally)ggpairs(world[,1:7],columns=c(2,4:7),aes(color=Position),alpha=0.8)+theme_bw(base_family="STKaiti",base_size=10)+theme(plot.title=element_text(hjust=0.5))+ggtitle("散点矩阵图")

运行结果

由这个图可以得到许多信息。可发现后卫数量是最多的,而门卫是数量最少的。同时可看出,四个位置的传球数,射门数等都服从偏态分布。Tackles 后卫表现突出,Shots 前锋表现突出.符合常理。

如果觉得《R语言数据可视化案例(世界杯球员信息数据可视化)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。