# 安装包
if (!requireNamespace("ggradar", quietly = TRUE)) {
install.packages("ggradar")
}if (!requireNamespace("dplyr", quietly = TRUE)) {
install.packages("dplyr")
}if (!requireNamespace("scales", quietly = TRUE)) {
install.packages("scales")
}if (!requireNamespace("tibble", quietly = TRUE)) {
install.packages("tibble")
}if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
# 加载包
library(ggradar)
library(dplyr)
library(scales)
library(tibble)
library(ggplot2)
雷达图
注记
Hiplot 网站
本页面为 Hiplot Radar
插件的源码版本教程,您也可以使用 Hiplot 网站实现无代码绘图,更多信息请查看以下链接:
雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据,以直观的表达某个研究对象在多种参数的对比。
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
ggradar
;dplyr
;scales
;tibble
;ggplot2
数据准备
数据载入为数据集 (4 种疾病中 5 个基因的表达水平)。
# 加载数据
<- read.delim("files/Hiplot/150-radar-data.txt", header = T)
data
# 整理数据格式
<- as.data.frame(t(data))
data colnames(data) <- data[1, ]
<- data[-1, ]
data for (i in seq_len(ncol(data))) {
<- as.numeric(data[, i])
data[, i]
}<- data %>%
data_radar rownames_to_column(var = "sample")
<- data_radar %>% mutate_at(vars(-sample), rescale)
data_radar
# 查看数据
head(data)
value1 value2 value3 value4 value5
S1 6 160 110 3.90 2.620
S2 6 160 110 3.90 2.875
S3 4 108 93 3.85 2.320
S4 6 258 110 3.08 3.215
可视化
# 雷达图
<- ggradar(data_radar, gridline.max.linetype = 1, group.point.size = 4,
p group.line.width = 1, font.radar = "Arial", fill.alpha = 0.5,
gridline.min.colour = "grey", gridline.mid.colour = "#007A87",
gridline.max.colour = "grey") +
ggtitle("Radar Plot") +
scale_color_manual(values = c("#E64B35FF","#4DBBD5FF","#00A087FF","#3C5488FF")) +
theme(text = element_text(family = "Arial"),
plot.title = element_text(size = 12,hjust = 0.5),
axis.title = element_blank(),
axis.text = element_text(size = 10),
axis.text.x = element_blank(),
axis.title.y=element_blank(),
axis.ticks.y=element_blank(),
legend.position = "right",
legend.direction = "vertical",
legend.title = element_text(size = 10),
legend.text = element_text(size = 10))
p

雷达图每种颜色表示一种疾病,每个点所在的位置表示不同基因表达情况,基因表达值越高,则越远离圆心,反之则越靠近圆心。