美文网首页基因组数据绘图
FigDraw 28. SCI文章中绘制雷达图/蛛网图 (Rad

FigDraw 28. SCI文章中绘制雷达图/蛛网图 (Rad

作者: 桓峰基因 | 来源:发表于2023-02-01 11:56 被阅读0次

    R语言数据可视化绘图教程已经不断的更新快30个教程,基本满足绘制 CNS 级别图形,只要深入研究肯定都会解决的,今天我们就说一下 SCI 文章中常见的雷达图,总结归纳一下,包括参数的修改,下面就来学习吧!


    R语言数据可视化绘图教程

    桓峰基因公众号推出基于R语言数据可视化绘图教程并配有视频在线教程,目前整理出来的教程目录如下:

    FigDraw 1. SCI 文章的灵魂 之 简约优雅的图表配色

    FigDraw 2. SCI 文章绘图必备 R 语言基础

    FigDraw 3. SCI 文章绘图必备 R 数据转换

    FigDraw 4. SCI 文章绘图之散点图 (Scatter)

    FigDraw 5. SCI 文章绘图之柱状图 (Barplot)

    FigDraw 6. SCI 文章绘图之箱线图 (Boxplot)

    FigDraw 7. SCI 文章绘图之折线图 (Lineplot)

    FigDraw 8. SCI 文章绘图之饼图 (Pieplot)

    FigDraw 9. SCI 文章绘图之韦恩图 (Vennplot)

    FigDraw 10. SCI 文章绘图之直方图 (HistogramPlot)

    FigDraw 11. SCI 文章绘图之小提琴图 (ViolinPlot)

    FigDraw 12. SCI 文章绘图之相关性矩阵图(Correlation Matrix)

    FigDraw 13. SCI 文章绘图之桑葚图及文章复现(Sankey)

    FigDraw 14. SCI 文章绘图之和弦图及文章复现(Chord Diagram)

    FigDraw 15. SCI 文章绘图之多组学圈图(OmicCircos)

    FigDraw 16. SCI 文章绘图之树形图(Dendrogram)

    FigDraw 17. SCI 文章绘图之主成分绘图(pca3d)

    FigDraw 18. SCI 文章绘图之矩形树状图 (treemap)

    FigDraw 19. SCI 文章中绘图之坡度图(Slope Chart)

    FigDraw 20. SCI文章中绘图之马赛克图 (mosaic)

    FigDraw 21. SCI文章中绘图之三维散点图 (plot3D)

    FigDraw 22. SCI文章中绘图之核密度及山峦图 (ggridges)

    FigDraw 23. SCI文章中绘图二维散点图与统计图组合

    FigDraw 24. SCI文章中绘图二维直方图及组合图

    FigDraw 25. SCI文章中绘图二维密度图及组合图

    FigDraw 26. SCI文章中绘图词云图 (wordcloud)

    FigDraw 27. SCI文章中绘制误差线 (Errorbar)

    简 介

    聚类分析包括将多元数据集分成具有相似特征的子组(“聚类”)。雷达图可以帮助直观地分析产生的子组。例如,这张来自Vickers(2006)的图表显示了英国国家统计局发布的地区分类中的一个集群的概况:

    雷达图( radar charts )又叫蜘蛛网图。传统的雷达图被认为是一种表现多维( 4  维以上)数据的图表。它将多个维度的数据量映射到坐标轴上,这些坐标轴起始于同一个圆心点,通常结束于圆周边缘,将同一组的点使用线连接起来就称为了雷达图。

    雷达图在图形表现上通常以线、面或 线面叠加的方式呈现,也可以配置数据点。

    如下示例,使用雷达图展示了古细菌丰度的时间动态,不同的图表示了不同的类群,雷达图的顶点为不同时间,颜色代表了不同的试验组。

    我们就学习一下这种蛛网图的R语言实现。

    软件安装

    这里我们使用两个软件包展示其绘制的效果,大家可以根据实际情况选择适合自己数据的图形。首先软件包安装包括 fmsb 和 ggradar, 前者适合基本绘图的需求,后者适合 ggplot2 的绘图需求,根据自己习惯选择即可。

    if(!require(fmsb))
    install.packages("fmsb")

    if(!require(devtools))
    install.packages('devtools')

    devtools::install_github("ricardo-bion/ggradar",dependencies = TRUE)

    数据读取

    用于绘制雷达图的数据框是有一定要求的。每个变量的最大值必须作为第1行,最小值作为第2行,实际数据应作为第3行和更低的行给出。列(变量)的数量必须大于2。

    set.seed(1)
    df <- data.frame(rbind(rep(10, 8), rep(0, 8), matrix(sample(0:10, 8), nrow = 1)))
    colnames(df) <- paste("Var", 1:8)
    head(df)
    ## Var 1 Var 2 Var 3 Var 4 Var 5 Var 6 Var 7 Var 8
    ## 1 10 10 10 10 10 10 10 10
    ## 2 0 0 0 0 0 0 0 0
    ## 3 8 3 6 0 1 4 2 10
    set.seed(1)
    df2 <- data.frame(rbind(rep(10, 8), rep(0, 8), matrix(sample(0:10, 24, replace = TRUE),
    nrow = 3)))
    colnames(df2) <- paste("Var", 1:8)
    head(df2)
    ## Var 1 Var 2 Var 3 Var 4 Var 5 Var 6 Var 7 Var 8
    ## 1 10 10 10 10 10 10 10 10
    ## 2 0 0 0 0 0 0 0 0
    ## 3 8 0 10 2 4 9 4 8
    ## 4 3 1 1 0 9 6 4 4
    ## 5 6 6 10 4 5 8 8 4

    实例解析

    下面我们就给出实际的例子进行雷达图的绘制。

    1. radarchart {fmsb}

    1. 先对数据 df 进行雷达图绘制, 并修改线条的颜色类型宽度等绘图参数。

    library(fmsb)
    par(mfrow=c(2,2))
    radarchart(df)
    radarchart(df,
    cglty = 1, # Grid line type
    cglcol = "gray", # Grid line color
    cglwd = 1, # Line width of the grid
    pcol = 4, # Color of the line
    plwd = 2, # Width of the line
    plty = 1) # Line type of the line
    radarchart(df,
    cglty = 1, cglcol = "gray",
    pcol = 4, plwd = 2,
    pfcol = rgb(0, 0.4, 1, 0.25))
    radarchart(df,
    cglty = 1, cglcol = "gray",
    pcol = 1, plwd = 2,
    pdensity = 10,
    pangle = 40)

    2. 先对数据 df2 进行雷达图绘制, 并修改线条的颜色类型宽度填充等绘图参数。

    par(mfrow=c(2,2))
    radarchart(df2)
    radarchart(df2,
    cglty = 1, # Grid line type
    cglcol = "gray", # Grid line color
    pcol = 2:4, # Color for each line
    plwd = 2, # Width for each line
    plty = 1) # Line type for each line
    # Fill colors
    areas <- c(rgb(1, 0, 0, 0.25),
    rgb(0, 1, 0, 0.25),
    rgb(0, 0, 1, 0.25))

    radarchart(df2,
    cglty = 1, # Grid line type
    cglcol = "gray", # Grid line color
    pcol = 2:4, # Color for each line
    plwd = 2, # Width for each line
    plty = 1, # Line type for each line
    pfcol = areas) # Color of the areas

    areas <- c(rgb(1, 0, 0, 0.25),
    rgb(0, 1, 0, 0.25),
    rgb(0, 0, 1, 0.25))

    radarchart(df2,
    cglty = 1, # Grid line type
    cglcol = "gray", # Grid line color
    pcol = 2:4, # Color for each line
    plwd = 2, # Width for each line
    plty = 1, # Line type for each line
    pfcol = areas) # Color of the areas

    legend("topright",
    legend = paste("Group", 1:3),
    bty = "n", pch = 20, col = areas,
    text.col = "grey25", pt.cex = 2)

    文章实例绘图

    我们利用文章给出的类似数据进行绘图

    # 文献例子 先定义每个元素的取值范围
    dat1 <- data.frame(Peroxidase = c(5, 0), Phosphatase = c(10, 0), `N-acetylglucosaminidase` = c(8,
    0), MOI = c(6, 0), Temp = c(9, 0))

    # 再将每个对象的各元素数值叠加在下方
    set.seed(1234)
    dat2 <- data.frame(Peroxidase = runif(3, 1, 5), Phosphatase = runif(3, 1, 10), `N-acetylglucosaminidase` = runif(3,
    1, 8), MOI = runif(3, 1, 6), Temp = runif(3, 1, 9))

    dat <- rbind(dat1, dat2)

    # 查看数据集结构
    dat
    ## Peroxidase Phosphatase N.acetylglucosaminidase MOI Temp
    ## 1 5.000000 10.000000 8.000000 6.000000 9.000000
    ## 2 0.000000 0.000000 0.000000 0.000000 0.000000
    ## 3 1.454814 6.610415 1.066470 3.571256 3.261869
    ## 4 3.489198 8.748238 2.627854 4.467956 8.387468
    ## 5 3.437099 6.762795 5.662586 3.724874 3.338527

    # 雷达图,详情 ?radarchart
    par(mar = c(1, 2, 2, 1), mfrow = c(2, 2))
    radarchart(dat, axistype = 1, seg = 5, plty = 1, vlcex = 1)
    radarchart(dat, axistype = 2, pcol = topo.colors(3), plty = 1, pdensity = c(5, 10,
    30), pangle = c(10, 45, 120), pfcol = topo.colors(3))
    radarchart(dat, axistype = 3, pty = 32, plty = 1, axislabcol = "grey", na.itp = FALSE)
    radarchart(dat, axistype = 1, pcol = c("#4C00FF", "#00FF4D", "#FFFF00"), pfcol = c("#4C00FF55",
    "#00FF4D55", "#FFFF0055"), centerzero = TRUE, seg = 4, caxislabels = c("worst",
    "", "", "", "best"))

    2. ggradar {ggradar}

    利用ggradar进行绘制,数据格式如下:

    set.seed(4)
    df <- data.frame(matrix(runif(30), ncol = 10))
    df[, 1] <- paste0("G", 1:3)
    colnames(df) <- c("Group", paste("Var", 1:9))
    head(df)
    ## Group Var 1 Var 2 Var 3 Var 4 Var 5 Var 6 Var 7
    ## 1 G1 0.2773750 0.7244059 0.07314447 0.1000535 0.4551024 0.9622046 0.9966129
    ## 2 G2 0.8135742 0.9060922 0.75467503 0.9540688 0.9710557 0.7617024 0.5062709
    ## 3 G3 0.2604278 0.9490402 0.28600062 0.4156071 0.5839880 0.7145085 0.4899432
    ## Var 8 Var 9
    ## 1 0.6491614 0.8417462
    ## 2 0.8308064 0.5137017
    ## 3 0.4819990 0.5297775

    a. 绘制一般雷达图以及参数修改等

    library(ggradar)
    library(dplyr)
    library(scales)
    library(tibble)

    p1 <- ggradar(df)

    p2 <- ggradar(df, values.radar = c(0, 0.5, 1), axis.labels = paste0("A", 1:9))


    # Color for the lines
    lcols <- c("#EEA236", "#5CB85C", "#46B8DA")

    p3 <- ggradar(df, background.circle.colour = "white", axis.line.colour = "gray60",
    gridline.min.colour = "gray60", gridline.mid.colour = "gray60", gridline.max.colour = "gray60",
    group.colours = lcols)

    # Color for the lines
    lcols <- c("#EEA236", "#5CB85C", "#46B8DA")

    p4 <- ggradar(df, background.circle.colour = "white", gridline.min.linetype = 1,
    gridline.mid.linetype = 1, gridline.max.linetype = 1, group.colours = lcols)

    p5 <- ggradar(df, legend.title = "Group", legend.position = "bottom")

    p6 <- ggradar(df, plot.legend = FALSE)

    library(cowplot)
    plot_grid(p1, p2, p3, p4, p5, p6, nrow = 2, ncol = 3)

    b. 采取 mtcar 实例操作绘制雷达图

    mtcars_radar <- mtcars %>%
    as_tibble(rownames = "group") %>%
    mutate_at(vars(-group), rescale) %>%
    tail(4) %>%
    select(1:10)

    ggradar(mtcars_radar)

    用R语言绘制雷达图,尝试了两种工具:fmsb和ggradar,前一种绘制的是多边形雷达图,ggradar默认绘制的是圆形雷达图。

    References:

  1. Wahdan, S.F.M., Ji, L., Schädler, M. et al. Future climate conditions accelerate wheat straw decomposition alongside altered microbial community composition, assembly patterns, and interaction networks. ISME J 17, 238–251 (2023).

  2. Breidenbach B, Blaser MB, Klose M, Conrad R. Crop rotation of flooded rice with upland maize impacts the resident and active methanogenic microbial community. Environ Microbiol. 2016;18(9):2868-2885. doi:10.1111/1462-2920.13041

  3. 本文使用 文章同步助手 同步

    相关文章

      网友评论

        本文标题:FigDraw 28. SCI文章中绘制雷达图/蛛网图 (Rad

        本文链接:https://www.haomeiwen.com/subject/yodihdtx.html