【雷达图】R语言绘制雷达图(ggradar),NBA季后赛数据为例
雷达图简介
雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。轴的相对位置和角度通常是无信息的。 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规则多边形,极坐标图或Kiviat图。它相当于平行坐标图,轴径向排列。
像六边形战士就是说的马龙的力量、速度、技巧、发球、防守、经验六个方面的六维雷达图是六边形的。
ggradar
介绍
我们将用ggradar
这个包来绘制雷达图。从名字就可以看出来,它是基于ggplot
的radar
图。
安装
devtools::install_github("ricardo-bion/ggradar", dependencies = TRUE)
导入
library(ggradar)
library(dplyr)
library(scales)
library(tibble)
以mtcars
数据集为例
mtcars
数据是数据摘自 1974 年美国汽车趋势杂志,包括 32 辆汽车(1973-74 年车型)的油耗和汽车设计和性能等 10 个方面。
mtcars_radar <- mtcars %>% as_tibble(rownames = "group") %>% mutate_at(vars(-group), rescale) %>% tail(4) %>% select(1:10)ggradar(mtcars_radar)
上面这个例子是这个包的作者给的样例,下面再用我们自己的数据试试。
以2021-2022nba季后赛球员数据
为例
数据描述
数据就长这样:
平均得分 | 平均篮板 | 平均助攻 | 场均时间 | 场上效率值 | 投篮 | 三分球 | 罚球 | 进攻篮板 | 防守篮板 | 抢断 | 盖帽 | 失误 | 犯规 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Giannis Antetokounmpo | 31.7 | 14.2 | 6.8 | 37.3 | 34.3 | 49.1 | 22 | 67.9 | 2.2 | 12 | 0.7 | 1.3 | 4.5 | 3.6 |
Luka Doncic | 31.7 | 9.8 | 6.4 | 36.8 | 31.5 | 45.5 | 34.5 | 77 | 0.7 | 9.1 | 1.8 | 0.6 | 3.9 | 2.9 |
Nikola Jokic | 31 | 13.2 | 5.8 | 34.2 | 37.8 | 57.5 | 27.8 | 84.8 | 3.4 | 9.8 | 1.6 | 1 | 4.8 | 4 |
Jimmy Butler | 27.4 | 7.4 | 4.6 | 37 | 29.8 | 50.6 | 33.8 | 84.1 | 2.4 | 4.9 | 2.1 | 0.6 | 1.5 | 1.5 |
Stephen Curry | 27.4 | 5.2 | 5.9 | 34.7 | 25.7 | 45.9 | 39.7 | 82.9 | 0.5 | 4.7 | 1.3 | 0.4 | 2.6 | 2.7 |
Ja Morant | 27.1 | 8 | 9.8 | 37.6 | 29.9 | 44 | 34 | 74.7 | 1.4 | 6.6 | 2 | 0.4 | 3.6 | 2.4 |
Brandon Ingram | 27 | 6.2 | 6.2 | 39.3 | 24.8 | 47.5 | 40.7 | 83 | 0.7 | 5.5 | 0.7 | 0.3 | 3.8 | 1.8 |
Kevin Durant | 26.3 | 5.8 | 6.3 | 44 | 20.5 | 38.6 | 33.3 | 89.5 | 0.5 | 5.3 | 1 | 0.3 | 5.3 | 3.8 |
Jayson Tatum | 25.6 | 6.7 | 6.2 | 41 | 23.7 | 42.6 | 39.3 | 80 | 1 | 5.7 | 1.2 | 0.9 | 4.2 |
画图代码
nba_radar <- nba %>% as_tibble(rownames = "name") %>% mutate_at(vars(-name), rescale) %>% filter(name=="Luka Doncic" |name=="Stephen Curry"|name=="Kevin Durant"|name=="Kyrie Irving"|name=="James Harden") %>%select(c(1:4,8:9,12:14))
ggradar(nba_radar)
代码说明
首先是这个符号%>%
,这个符号是R语言中的管道符号,是将前一步的结果直接传递到后一步,节省了内存和代码量。
如果不用的话,上面的代码就是写成:
nba_radar <- nba
nba_radar <- as_tibble(nba_radar,rownames = "name")
nba_radar <- mutate_at(nba_radar,vars(-name), rescale)
nba_radar <- filter(nba_radar,name=="Luka Doncic" |name=="Stephen Curry"|name=="Kevin Durant"|name=="Kyrie Irving"|name=="James Harden")
nba_radar <- select(nba_radar,c(1:4,8:9,12:14))
ggradar(nba_radar)
然后就是as_tibble
这个,这个是一种比较新的数据类型tibble
,tibble
是R语言中一个用来替换data.frame
类型的扩展的数据框,tibble
继承了data.frame
,是弱类型的,同时与data.fram
e有相同的语法,使用起来更方便。tibble
包,也是由Hadley
开发的R包。
tibble对data.frame做了重新的设定:
tibble,不关心输入类型,可存储任意类型,包括list类型
tibble,没有行名设置 row.names
tibble,支持任意的列名
tibble,会自动添加列名
tibble,类型只能回收长度为1的输入
tibble,会懒加载参数,并按顺序运行
tibble,是tbl_df类型
这是他们的官方网页tibble官网
接着就是mutate_at(vars(-name), rescale)
这个我觉得是标准化的意思。
之后大家换成其他数据的时候,就把第一列作为名字就行,然后改一改上面代码的rownames
参数就行。
【雷达图】R语言绘制雷达图(ggradar),NBA季后赛数据为例相关推荐
- r语言绘制雷达图_用r绘制雷达蜘蛛图
r语言绘制雷达图 I've tried several different types of NBA analytical articles within my readership who are ...
- R语言绘制线图(line)实战
R语言绘制线图(line)实战 目录 R语言绘制线图(line)实战 #仿真数据 #基础线图
- R语言绘制空白图实战
R语言绘制空白图实战 目录 R语言绘制空白图实战 #绘制空白图1 #绘制空白图2 #绘制空白图3
- R语言绘制火山图(volcano plot)实战:为差异表达基因(DEGs)添加颜色、基于显著性阈值进行点的颜色美化、为选定基因添加标签
R语言绘制火山图(volcano plot)实战:为差异表达基因(DEGs)添加颜色.基于显著性阈值进行点的颜色美化.为选定基因添加标签 目录 R语言绘制火山图(volcano plot)实战 #导入 ...
- 运用R语言绘制小提琴图
运用R语言绘制小提琴图 一.概念 小提琴图是一种绘制连续型数据的方法,可以认为是箱形图与核密度图的结合体,与此同时,还可使用核密度图展示数据分布的'轮廓'效果,'轮廓'越大,即意味着数据越集中于该处, ...
- R语言绘制棒棒糖图(火柴杆图)
本博客介绍几种利用R语言绘制棒棒糖图(火柴杆图)的方法. 2. 使用原生ggplot方法 最容易也是最简单想到的方法是直接使用ggplot2包进行更新,这里需要使用ggplot本身的特性,通过图层叠加 ...
- matlab 画qq图,科学网—[转载]R语言绘制QQ图 - 刘朋的博文
R语言绘制QQ图 实例1: #############加载数据 data R R=apply(R,2,as.numeric) #R语言将字符串矩阵转化为数值型矩阵,apply()函数里面的第2个值,如 ...
- R语言绘制热图(其实是相关系数图)实践(二)corrplot包
目录 前言 corrplot包简介 语法和常用参数介绍 函数语法 参数介绍 实践 summary 参考资料 前言 在我的上一篇的内容中(R语言绘制热图实践(一)pheatmap包 ),我以绘制相关系数 ...
- R语言绘制QQ图实战(qqplot函数、qqnorm函数、qqline函数)
R语言绘制QQ图实战(qqplot函数.qqnorm函数.qqline函数) 目录 R语言绘制QQ图实战(qqplot函数.qqnorm函数.qqline函数)
- R语言绘制小提琴图geom_violin,如何给每个小提琴添加自定义直线?
R语言绘制小提琴图geom_violin,如何给每个小提琴添加自定义直线? 效果如下图所示: 数据按照下面的方式进行存储 下面提供所需要的代码: #加载必要的包 rm(list = ls()) lib ...
最新文章
- Visual Studio视觉编程工具(推荐四个)
- Netty with protobuf(二)
- rstp 小米网络摄像头_国家部门调查联邦美国快递,联通VoLTE试商用开启,iOS蜂窝网络下载上限提高,小米申请屏下摄像头专利,这就是今天的其他大新闻!...
- 64位debian系统下安装inodeClient
- ASP.NET MVC + ADO.NET EF 项目实战(二):设计过程与设计工具
- 数据有序_详解数据库插入性能优化:合并+事务+有序数据进行INSERT操作
- 什么是带内管理 带外管理?(转)
- 连接池配置oracle aix,一次AIX系统swap使用过高的故障解决过程
- Paint的方法总结(一):基本常用Api
- vs2005打点不提示
- CentOS7/RHEL7 systemd详解
- AMS1117-3.3电源芯片损坏分析
- 【opencv-ml】支持向量机简介
- 动态规划——斐波那契数列(70. 爬楼梯、198. 打家劫舍、213. 打家劫舍II、信件错排、母牛生产)
- 浏览器基础(2)-跨域
- 金融危机殃及色*情业,女*优转行做黑客?
- 云主机安全防护服务有哪些
- c++ 使用递归求解回文序列问题
- 《赵成的运维体系管理课》学习笔记(2)——持续交付
- 未来五年,不懂人工智能的程序员会被淘汰吗?
热门文章
- 【CVPR 2021】自我知识蒸馏:Self-distillation with Batch Knowledge Ensembling Improves ImageNet Classification
- opencv 图像对比度亮度调整
- centos8下搭建zabbix6.0监控系统
- 易源API 查询电话号码 归属地信息
- 中年大叔学雷达--雷达回波信号的产生(LFM echo Matlab)
- 【雷达回波】基于matlab天气观测极化雷达回波仿真【含Matlab源码 2252期】
- Java Bouncy Castle TLS PSK example
- 《看聊天记录都学不会C#?太菜了吧》(1)从今天开始我是一个游戏开发者
- 得到SIM卡串号和IMEI号
- 【LeetCode 719】 Find K-th Smallest Pair Distance