假如你有多个连续变量时,你会如何在一张图上展示他们的信息?在这里我给大家推荐雷达图
雷达图( radar charts )又叫蜘蛛网图,被认为是一种表现多维( 4 维以上)数据的图表。它将多个维度的数据量映射到坐标轴上,这些坐标轴起始于同一个圆心点,通常结束于圆周边缘,将同一组的点使用线连接起来就称为了雷达图。
如下示例,使用雷达图展示了ABCD四个城市的患病率,雷达图的顶点为不同的疾病(此处我模拟了6种,代表6个维度),颜色代表了不同的城市。(注:数据是我自己模拟的)
devtools::install_github('ricardo-bion/ggradar',dependencies = TRUE)
library(ggradar)
模拟数据
set.seed(2021)
dat <- data.frame(
obj = c('A', 'B', 'C',"D"),
MetS = runif(4, 0, 1),#生成服从正态分布随机数
Centralobesity = runif(4, 0, 1),
hypertension = runif(4, 0, 1),
LowHDL = runif(4, 0, 1),
hyperglycemia = runif(4, 0, 1),
Hypertriglycerides = runif(4,0,1))
查看数据集结构
dat
绘制雷达图
ggradar(dat,grid.min=0,#网格线的最小值
grid.max=1,#网格线的最小值
group.point.size=2.0,#点的大小
group.line.width=1.0,#网格线的宽度
background.circle.transparency = 0, #
grid.label.size=3,#标签的文本大小
axis.label.size=3,#轴标签的文本大小
legend.text.size=6,#图例文本大小
group.colours = c('#7FFF00', '#DDA0DD', '#00FFFF', '#EE6A50'))
如图所示,越靠近顶点的位置患某病的概率就越大,可以看到在Hypertriglycerides疾病中,B城市的患病率最高,其次是C,D,A.
是因为最近巧合看到一篇文献里面有雷达图,于是想着跟大家分享一下雷达图的绘制方法和解读。文献链接如下:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8139944/
网友评论