3分钟搞定雷达图,小白也能轻松上手!

学术   教育   2024-03-15 10:23   浙江  
今天来画雷达图,介绍一个新函数radarchart(),来自R包{fmsb} [1]给各位读者再送上新的技能包一份。

安装和载入下方R包:

install.packages("fmsb")
library(fmsb)

install.packages("RColorBrewer")
library(RColorBrewer) # 更多颜色选择,包括色盲友好的颜色

创建作图数据:


myradar <- data.frame(
  treatments = c("Wt_DMSO", "APOE_DMSO", "10 uM Donepezil"),
  A = c(100, 127.0712663, 75.49221394),
  B = c(100, 54.20588761, 141.1077757),
  C = c(100, 53.38809628, 146.3203228),
  D = c(100, 200.15486, 64.33077449),
  E = c(100, 174.32634, 157.0577396),
  F = c(100, 148.8633135, 116.4686715))

myradar

数据转换一下,让其符合作图要求:

rownames(myradar) <- paste(myradar$treatments) # 更改行的名称

myradar <- rbind(rep(300, 7), rep(0, 7), myradar)
# 数据中增加2行,构建后续雷达图的框架

myradar

首先,浅试画一下几张雷达图:

op <- par(mar = c(1, 2, 2, 1), mfrow = c(2, 2)) # 更改图片排列

radarchart(myradar[, -1],
           title = "1")

radarchart(myradar[, -1],
           axistype = 1, # 坐标轴类型
           seg = 5, # 坐标轴分几段
           pty = 32, # # 点的类型,16为默认实现圆点,32为无点。
           plty = 2, plwd = 3# 图的线条种类和粗细 
           title = "2"
           
radarchart(myradar[, -1],
           axistype = 2, # 坐标轴类型
           caxislabels = c("worst", "", "", "", "best"),
           title = "3")

radarchart(myradar[, -1],
           cglty = 2, # grid的类型
           cglwd = 1.2, # grid的类型
           cglcol = "grey", # grid的颜色
           vlabels = c("a", "b", "c", "d", "e", "f"),
           title = "4")

par(op)
# 恢复到默认图片排列

如果自己作图不知道用什么颜色合适,可以选择下方调色盘,都是色盲友好的

display.brewer.all(colorblindFriendly = TRUE)

关于为什么要这样选择颜色推荐看看往期:《Nature Methods》呼吁的一个作图问题,小编帮你解决!附R代码~

小编从上面的调色盘中pick了Dark2,并作图:

# 选择喜欢的调色盘
colors <- brewer.pal(3, "Dark2")

# 画出雷达图
radarchart(myradar[, -1],
           axistype = 1, seg = 6,
           pty = 18,
           pcol = colors,
           pfcol = scales::alpha(colors, 0.3),
           plwd = 0.6,
           plty = 1,
           cglcol = "grey",
           cglty = 1,
           axislabcol = "black",
           cglwd = 0.8,
           caxislabels = c(0, 50, 100, 150, 200, 250, 300),
           vlcex = 1.5,
           title = "My Radar Chart")

# 添加legend
legend(x = 0.6, y = 1.2, # legend的位置
       legend = rownames(myradar[3:5, ]), # legend为3—5行的行名称
       bty = "n",
       pch = 20 ,
       col = scales::alpha(colors, 0.6),
       text.col = "black",
       cex = 1,
       pt.cex = 2 )

雷达图就画好了~

往期介绍过不少雷达图和颜色的内容,感兴趣可以在公众号中搜索哦!

好啦,今天的内容就到这里。如果有帮助,记得分享给需要的人


参考文献

[1].https://cran.r-project.org/web/packages/fmsb/index.html

公众号的线上课程
1. 《R语言和统计新手课程》
2. 《回归:从入门到进阶》

统计咨询
《服务介绍和经典合作案例》

公众号核心成员的成果发表
《SCI医学1区影响因子9分论文》

公众号核心成员担任SCI杂志Associate Editor!
《JAD杂志Associate editor》
《Frontiers in Neuroscience, Frontiers in Neurology and Frontiers in Psychiatry杂志的神经退行性病变板块》

▌本文由R语言和统计首发
▌课程相关咨询可添加R师妹微信: kefu_rstats
▌编辑:June
▌邮箱:contact@rstats.cn
▌网站:www.rstats.cn
我们致力于让R语言和统计变得简单!




R语言和统计
我们定期更新与R有关的内容,比如R编程基础,作图,实用R包的解读,统计学基础知识,前沿的统计方法,机器学习等等。
 最新文章