上期我们通过复现学习了如何绘制玫瑰图,感兴趣可戳往期《如何优雅绘制花瓣玫瑰图?》。
如果想要将多个组别的花瓣图合并,在同一张图表中对这六个组别的数据进行多维度比较,可选择雷达图进行可视化呈现,如下图:
(Nat Commun,2024)
雷达图又称为蜘蛛图,非常适合展示研究对象(单组或多组)在多个维度的属性值或得分,又或是用于展示不同样本、细胞亚群中目标基因的表达水平、微生物在不同环境中的丰度变化等等。
下面我们以上文雷达图复现为例,学习如何使用ggradar包绘制雷达图。案例数据来自文献源数据,有需要测试数据的童鞋可从文末【参考文献】处自行获取。
#相关R包安装与载入:
devtools::install_github('ricardo-bion/ggradar')
library(ggradar)
#载入本期测试数据:
dt <- read.csv('radar_test.csv', header = T, check.names = F)
dt[1:6,1:3]
#查看数据范围区间:
range(dt[,-1])
#单组雷达图绘制:
ggradar(dt[1,],
grid.min = 11, #最小网格线椭圆对应数值
grid.mid = 23.75, #中间网格线椭圆对应数值
grid.max = 36.5) #最大网格线椭圆对应数值
##根据数据限制网格线数值范围,若数据不在区间内(默认0-1)会报错;
#多组雷达图绘制:
ggradar(dt,
grid.min = 11,
grid.mid = 23.75,
grid.max = 36.5)
#雷达图参数优化:
mycol <- c('#cd4a33', '#eaa822', '#4ca7bd', '#88bd6d', '#354d7d', '#14927c') #自定义配色
dt$group <- factor(dt$group, levels = dt$group) #转化为因子,固定绘图顺序
ggradar(dt,
grid.min = 5,
grid.mid = 20.75,
grid.max = 36.5,
values.radar = NA, #不显示网格线椭圆对应数值,可不显示
gridline.mid.colour = 'grey', #中间网格线颜色
axis.label.size = 5.5, #文本标签大小
group.colours = mycol,
group.point.size = 4,#点大小
group.line.width = 1, #线宽
background.circle.colour = '#D7D6D1', #背景填充色
background.circle.transparency = 0.2, #背景填充不透明度
legend.position = 'bottom', #图例位置
legend.text.size = 14 #图例标签大小
)
ggradar包中,只能添加三条背景椭圆网格线(等同于极坐标刻度),如果想像文献一样,显示多条网格,可后期在AI中添加。
打开AI(Adobe Illustrator),菜单栏文件—打开将上一步绘制好的雷达图(记得保存为矢量格式)导入AI。首先,使用直线段或钢笔工具计算下两个网格间的直线距离(便于计算所需偏移量),使用直接选择工具,选中椭圆线,菜单栏选择对象—路径—偏移路径。
根据所需要添加的椭圆线数量和直线距离计算需要的偏移量,点击确定即可。
最终效果如下:
好啦,今日分享毕!
参考文献
#artContent h1{font-size:16px;font-weight: 400;}#artContent p img{float:none !important;}#artContent table{width:100% !important;}