专注收集和自写可发表的科研图形的数据和代码分享,该系列的数据均可从以下链接下载:
百度云盘链接: https://pan.baidu.com/s/1M4vgU1ls0tilt0oSwFbqYQ
提取码: 请关注WX公zhong号 生信学习者 后台发送 科研绘图 获取提取码
介绍
雷达图,又称为蜘蛛网图或星形图,是一种以多轴方式显示数据的图表。它通常用于显示多个定量变量的值,这些变量被表示为从中心点向外延伸的轴。每个轴代表一个变量,而每个变量的值则通过从中心向外延伸的距离来表示。雷达图可以直观地展示多个变量之间的相对大小和关系。雷达图的特点:
多维数据比较:可以同时比较多个变量,看它们在不同维度上的表现。
综合评价:用于综合评价一个或多个对象在多个方面的表现。
趋势分析:可以观察变量随时间的变化趋势。
差异识别:通过比较不同对象的雷达图,可以快速识别它们在哪些方面存在差异。
平衡分析:在需要平衡多个方面时,雷达图可以帮助识别哪些方面需要加强或改进。
加载R包
knitr::opts_chunk$set(message = FALSE, warning = FALSE)
library(tidyverse)
# devtools::install_github("ricardo-bion/ggradar")
library(ggradar)
rm(list = ls())
options(stringsAsFactors = F)
options(future.globals.maxSize = 10000 * 1024^2)
导入数据
data <- data.frame(
row.names = c("Student.1", "Student.2", "Student.3"),
Biology = c(7.9, 3.9, 9.4),
Physics = c(10, 20, 0),
Maths = c(3.7, 11.5, 2.5),
Sport = c(8.7, 20, 4),
English = c(7.9, 7.2, 12.4),
Geography = c(6.4, 10.5, 6.5),
Art = c(2.4, 0.2, 9.8),
Programming = c(0, 0, 20),
Music = c(20, 20, 20))
head(data)
Biology | Physics | Maths | Sport | |
---|---|---|---|---|
Student.1 | 7.9 | 10 | 3.7 | 8.7 |
Student.2 | 3.9 | 20 | 11.5 | 20.0 |
Student.3 | 9.4 | 0 | 2.5 | 4.0 |
数据预处理
设置分组标签
plotdata <- data %>%
tibble::rownames_to_column("group")
plotdata
Group | Biology | Physics | Maths | Sport |
---|---|---|---|---|
Student.1 | 7.9 | 10 | 3.7 | 8.7 |
Student.2 | 3.9 | 20 | 11.5 | 20.0 |
Student.3 | 9.4 | 0 | 2.5 | 4.0 |
画图
基础图形
ggradar(
plotdata[1, ],
values.radar = c("0", "10", "20"),
grid.min = 0, grid.mid = 10, grid.max = 20)
定制化图形:修改背景
ggradar(
plotdata[1, ],
values.radar = c("0", "10", "20"),
grid.min = 0, grid.mid = 10, grid.max = 20,
# Polygons
group.line.width = 1,
group.point.size = 3,
group.colours = "#00AFBB",
# Background and grid lines
background.circle.colour = "white",
gridline.mid.colour = "grey")
多组雷达图
ggradar(
plotdata,
values.radar = c("0", "10", "20"),
grid.min = 0, grid.mid = 10, grid.max = 20,
# Polygons
group.line.width = 1,
gridline.min.linetype = 1,
gridline.mid.linetype = 1,
gridline.max.linetype = 1,
group.point.size = 3,
group.colours = c("#00AFBB", "#E7B800", "#FC4E07"),
# Background and grid lines
background.circle.colour = "white",
gridline.mid.colour = "grey",
legend.position = "bottom")