美文网首页R
复现SCI文章:配对连线、散点箱线图

复现SCI文章:配对连线、散点箱线图

作者: KS科研分享与服务 | 来源:发表于2023-02-23 16:59 被阅读0次

    今天我们要复现的是一篇SCI文章的配对连线箱线图,配对箱线图、或者说配对连线图我们之前有写过(ggplot做分组配对连线图ggplot2|ggpubr配对箱线图绘制与配对检验复现NC图表-配对小提琴的绘制(理解绘图函数内部底层机制)),但是有一个细节没有处理,那就是使用抖动点。这次的复现让你加深印象,帮助对同类图形作图的理解。当然还有很多细节问题,能让你学到ggplot2作图技巧和处理方式,相关注释代码及数据已上传群文件!

    image.png image.png

    第一步,加载数据,完成一个普通的散点箱线图:

    setwd('D:/KS项目/配对箱线图颜色配对')
    df <- read.csv('df.csv', header = T)
    library(ggplot2)
    library(ggpubr)
    #1
    ggplot(data=df, aes(x = Disease.state, y = Richness,
                        color=Disease.state)) +
      geom_boxplot(alpha =0.5,size=1,outlier.shape = NA)+
      scale_color_manual(limits=c("Patient","Relative"), 
                         values=c("#E29827","#922927"))+
      stat_compare_means(method = "t.test",paired = TRUE, 
                         comparisons=list(c("Patient", "Relative")))+
      geom_jitter(alpha = 0.3,size=3, aes(fill=indi),shape=21)+
      scale_y_continuous(expand = expansion(mult = c(0.05, 0.1)))+
      facet_wrap(~sample, scales = "free_y")+
      theme_bw() + 
      theme(panel.grid =element_blank(),
            axis.text = element_text(size = 10,colour = "black"),
            axis.text.x = element_blank(),
            axis.title.x = element_blank(),
            axis.ticks.x = element_blank(),
            legend.position = 'top')+
      labs(y='Expression')
    
    image.png

    第二步,geom_line添加连线,但是有问题:

    
    ggplot(data=df, aes(x = Disease.state, y = Richness,
                        color=Disease.state)) +
      geom_boxplot(alpha =0.5,size=1,outlier.shape = NA)+
      scale_color_manual(limits=c("Patient","Relative"), 
                         values=c("#E29827","#922927"))+
      stat_compare_means(method = "t.test",paired = TRUE, 
                         comparisons=list(c("Patient", "Relative")))+
      geom_jitter(alpha = 0.3,size=3, aes(fill=indi),shape=21)+
      geom_line(aes(group = Family.ID), 
                color = 'grey40', lwd = 0.5)+
      scale_y_continuous(expand = expansion(mult = c(0.05, 0.1)))+
      facet_wrap(~sample, scales = "free_y")+
      theme_bw() + 
      theme(panel.grid =element_blank(),
            axis.text = element_text(size = 10,colour = "black"),
            axis.text.x = element_blank(),
            axis.title.x = element_blank(),
            axis.ticks.x = element_blank(),
            legend.position = 'top')+
      labs(y='Expression')
    
    image.png

    第三步,抖动点和连线设置一致的位置,就完成了。

    ggplot(data=df, aes(x = Disease.state, y = Richness,
                        color=Disease.state)) +
      geom_boxplot(alpha =0.5,size=1,outlier.shape = NA)+
      scale_color_manual(limits=c("Patient","Relative"), 
                         values=c("#E29827","#922927"))+
      stat_compare_means(method = "t.test",paired = TRUE, 
                         comparisons=list(c("Patient", "Relative")))+
      geom_jitter(size=3, aes(fill=indi),
                  shape=21,position = position_dodge(0.5))+
      geom_line(aes(group = Family.ID), 
                color = 'grey40', lwd = 0.5,position = position_dodge(0.5))+ #添加连线
      scale_y_continuous(expand = expansion(mult = c(0.05, 0.1)))+
      facet_wrap(~sample, scales = "free_y")+
      theme_bw() + 
      theme(panel.grid =element_blank(),
            axis.text = element_text(size = 10,colour = "black"),
            axis.text.x = element_blank(),
            axis.title.x = element_blank(),
            axis.ticks.x = element_blank(),
            legend.position = 'top')+
      labs(y='Expression')
    
    image.png

    效果很好,可以应用到配对数据的可视化和分析。觉得分享有用的,点个赞、分享一下再走呗!!!

    相关文章

      网友评论

        本文标题:复现SCI文章:配对连线、散点箱线图

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