【雷达图】R语言绘制雷达图(ggradar),NBA季后赛数据为例

13 篇文章 2 订阅
3 篇文章 1 订阅
本文介绍了如何使用R语言中的ggradar包绘制雷达图,以展示2021-2022 NBA季后赛球员的多维度数据。通过管道操作符%>%简化代码,将数据标准化并过滤所需球员,最后展示雷达图,直观对比球员的平均得分、篮板、助攻等关键指标。
摘要由CSDN通过智能技术生成

雷达图简介

雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。轴的相对位置和角度通常是无信息的。 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规则多边形,极坐标图或Kiviat图。它相当于平行坐标图,轴径向排列。

像六边形战士就是说的马龙的力量、速度、技巧、发球、防守、经验六个方面的六维雷达图是六边形的。
在这里插入图片描述

ggradar介绍

我们将用ggradar这个包来绘制雷达图。从名字就可以看出来,它是基于ggplotradar图。

安装

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)

mtcars的雷达图
上面这个例子是这个包的作者给的样例,下面再用我们自己的数据试试。

2021-2022nba季后赛球员数据为例

数据描述

数据就长这样:

平均得分平均篮板平均助攻场均时间场上效率值投篮三分球罚球进攻篮板防守篮板抢断盖帽失误犯规
Giannis Antetokounmpo31.714.26.837.334.349.12267.92.2120.71.34.53.6
Luka Doncic31.79.86.436.831.545.534.5770.79.11.80.63.92.9
Nikola Jokic3113.25.834.237.857.527.884.83.49.81.614.84
Jimmy Butler27.47.44.63729.850.633.884.12.44.92.10.61.51.5
Stephen Curry27.45.25.934.725.745.939.782.90.54.71.30.42.62.7
Ja Morant27.189.837.629.9443474.71.46.620.43.62.4
Brandon Ingram276.26.239.324.847.540.7830.75.50.70.33.81.8
Kevin Durant26.35.86.34420.538.633.389.50.55.310.35.33.8
Jayson Tatum25.66.76.24123.742.639.38015.71.20.94.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这个,这个是一种比较新的数据类型tibbletibble是R语言中一个用来替换data.frame类型的扩展的数据框,tibble继承了data.frame,是弱类型的,同时与data.frame有相同的语法,使用起来更方便。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参数就行。
NBA

  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
以下是在R语言中调用Excel数据绘制雷达图的步骤: 1. 安装和加载必要的包: ```R install.packages("ggplot2") library(ggplot2) install.packages("reshape2") library(reshape2) install.packages("xlsx") library(xlsx) ``` 2. 读取Excel数据: ```R data <- read.xlsx("your_file.xlsx", sheetIndex = 1, header = TRUE) ``` 这里的 `your_file.xlsx` 是你要读取的Excel文件名, `sheetIndex` 是你要读取的工作表的索引, `header` 指定是否包含表头。 3. 转换数据格式: 将数据转换成 `melt` 格式,以便于绘制雷达图。 ```R mdata <- melt(data, id.vars = "name") ``` 这里的 `name` 是你要作为变量标识的列名。 4. 绘制雷达图: ```R ggplot(mdata, aes(x = variable, y = value, group = name)) + geom_polygon(aes(fill = name), alpha = 0.5) + geom_line(aes(colour = name)) + geom_point(aes(colour = name), size = 3) + coord_polar() + theme(legend.position = "bottom") ``` 这里使用了 `ggplot2` 包来绘制雷达图。 5. 自定义图形: 你可以使用 `ggplot2` 提供的函数来自定义你的雷达图,例如更改颜色、线条类型、添加标签等等。 ```R ggplot(mdata, aes(x = variable, y = value, group = name)) + geom_polygon(aes(fill = name), alpha = 0.5) + geom_line(aes(colour = name), linetype = "dashed") + geom_point(aes(colour = name), size = 3) + scale_fill_manual(values = c("#E69F00", "#56B4E9", "#009E73")) + scale_colour_manual(values = c("#E69F00", "#56B4E9", "#009E73")) + labs(title = "Radar Chart", x = "", y = "") + coord_polar() + theme(legend.position = "bottom", panel.grid.major = element_blank()) ``` 此代码更改了填充颜色、线条类型和添加了标题和标签。
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值