美文网首页
R可视化——ggplot2绘制柱状堆积图并添加连线

R可视化——ggplot2绘制柱状堆积图并添加连线

作者: 科研那点事儿 | 来源:发表于2022-08-10 09:34 被阅读0次

    安装、加载R包

    #clear Global Environment
    rm(list=ls())
    
    #安装包
    # install.packages("ggplot2")
    # install.packages("ggprism")
    # install.packages("reshape")
    # install.packages("ggalluvial")
    #加载包
    library(ggplot2)
    library(ggprism)
    library(reshape)
    library(ggalluvial)
    

    构造数据并对其进行处理

    #构造数据
    df<-data.frame(samples=c('a','b','c','d','e'),
                   A=c(0.3,0.25,0.1,0.2,0.15),
                   B=c(0.6,0.1,0.05,0.2,0.05),
                   C=c(0.4,0.2,0.1,0.15,0.15),
                   D=c(0.1,0.2,0.3,0.3,0.1))
    #变量格式转换,宽数据转化为长数据,方便后续作图
    df1 <- melt(df,id.vars = 'samples',measure.vars = c('A','B','C','D'))
    names(df1)[1:2] <- c("group","X")  #修改列名
    
    image.png

    绘图

    1、绘制柱状堆积图
    ggplot(df1, aes( x = X,y=100 * value,fill = group))+
      geom_col(position = 'stack', width = 0.6)
    
    image.png
    2、使用ggplot2拓展包ggalluvial重新绘制并添加连线
    ggplot(df1, aes( x = X,y=100 * value,fill = group,
                     stratum = group, alluvium = group))+
      geom_stratum(width = 0.5, color='white')+
      geom_alluvium(alpha = 0.5,
                    width = 0.5,
                    curve_type = "linear")
    
    image.png

    模板代码

    ggplot(df1, aes( x = X,y=100 * value,fill = group,
                     stratum = group, alluvium = group))+
      geom_stratum(width = 0.7, color='white')+
      geom_alluvium(alpha = 0.5,
                    width = 0.7,
                    color='white',
                    size = 1,
                    curve_type = "linear")+
      scale_y_continuous(expand = c(0,0))+
      labs(x="Samples",y="Relative Abundance(%)",
           fill="group")+
      guides(fill=guide_legend(keywidth = 1, keyheight = 1)) +
      theme_prism(palette = "candy_bright",
                  base_fontface = "plain", 
                  base_family = "serif", 
                  base_size = 16, 
                  base_line_size = 0.8, 
                  axis_text_angle = 45)+
      scale_fill_prism(palette = "candy_bright")+
      theme(legend.position = 'top')
    
    image.png

    更多精彩欢迎大家关注微信公众号【科研后花园】!!!

    相关文章

      网友评论

          本文标题:R可视化——ggplot2绘制柱状堆积图并添加连线

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