美文网首页
R语言精美图形绘制系列 | 箱线图绘制

R语言精美图形绘制系列 | 箱线图绘制

作者: 小杜的生信筆記 | 来源:发表于2023-05-26 14:42 被阅读0次

    一、前言

    今天的教程是看到那些优秀大佬的分享,自己截取需要的一部分,作为自己笔记进行分享。对于小杜的分享,绝大部分都是结合自己的需求,不会过于“迁就”各位童靴的需求,在后台也有很多同学留言,说是学习某某一方面的教程,或是图形的绘制等等。但是,自己的精力和时间有限,并没有那么多时间。如果,你有学习某一块知识,那么也欢迎您来投稿,欢迎分享!!!


    二、正文

    导入数据

    library(ggplot2)
    
    y <- read.csv("inputdata.csv",header = T)
    head(y)
    
    > head(y)
         Var1     value
    1 HSP90B1 0.5733672
    2    LSP1 0.7332912
    3 ARHGAP4 0.6003940
    4   AHNAK 0.6811608
    5    FLII 0.6231854
    6 CWF19L1 0.5020677
    

    计算均值

    y.mean <- aggregate(.~Var1,y,mean) 
    m <- y.mean$value
    names(m) <- y.mean$Var1
    

    排序

    根据自己的需求取舍

    y$Var1 <- factor(y$Var1, levels=names(sort(m)))
    
    f <- function(y) {
      r <- quantile(y, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))
      r[3] <- mean(y)
      names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
      r
    }
    

    绘图

    1. 绘制基本图形
    p1 <- ggplot(y, aes(Var1, value, fill = factor(Var1))) + 
      scale_fill_brewer(palette="Set3") + #配色
      guides(fill=FALSE) + #不显示图例
      
      stat_summary(fun.data= f, geom='boxplot')
    
    1. x、y坐标轴互换
    p2 <- p1 + coord_flip() + # x、y坐标轴互换
    
    1. 再图中画一条虚线
    p3 <- P2 +geom_hline(aes(yintercept=0.6), linetype="dashed") + #画一条虚线
    
    1. 细节调整,可以根据自己的需求进行调整即可。
    p3 + 
    xlab("") + ylab("") + 
      theme(axis.text.x = element_text(family = "Arial", size = 16, face = "bold"),
            axis.text.y = element_text(family = "Arial", size = 16, face = "bold")) + 
      theme_bw() + 
       theme(panel.border=element_rect(size=1)) #边框粗细 
    

    关于theme(),我们可以自己编辑或设置一个,在所有图形中都有可运用,确保图形的统一性。

    以下仅仅只是自己设置的一个,仅供参考。

    theme(#legend.position="bottom",
        legend.text = element_text(size=12),
        legend.title = element_blank(),  ##右边标签的title显示
        panel.border = element_rect(linetype = 'solid', colour = 'black',fill = NA),
        panel.background = element_rect(fill = "white",
                                        colour = "white",
                                        size = 0.5, linetype = "solid"),
        axis.text.y = element_text(size=12, colour="black", family = "sans", angle = 0), 
        axis.text.x = element_text(size=12, colour="black", family = "sans", angle = 0, hjust = 0),
        axis.title= element_text(size=12),
        strip.text.x = element_text(size=12, angle = 0),
        strip.text.y = element_text(size=12, angle = 0),
        plot.title = element_text(size=12, angle = 0))
    

    绘图所有的代码

    ggplot(y, aes(Var1, value, fill = factor(Var1))) + 
      scale_fill_brewer(palette="Set3") + #配色
      guides(fill=FALSE) + #不显示图例
      
      stat_summary(fun.data= f, geom='boxplot') + 
      
      coord_flip() + # x、y坐标轴互换
      xlab("") + ylab("") + 
      theme_bw() + 
      geom_hline(aes(yintercept=0.6), linetype="dashed") + #画一条虚线
      
      theme(panel.border=element_rect(size=1))+ #边框粗细 
       theme(#legend.position="bottom",
        legend.text = element_text(size=12),
        legend.title = element_blank(),  ##右边标签的title显示
        panel.border = element_rect(linetype = 'solid', colour = 'black',fill = NA),
        panel.background = element_rect(fill = "white",
                                        colour = "white",
                                        size = 0.5, linetype = "solid"),
        axis.text.y = element_text(size=12, colour="black", family = "sans", angle = 0), 
        axis.text.x = element_text(size=12, colour="black", family = "sans", angle = 0, hjust = 0),
        axis.title= element_text(size=12),
        strip.text.x = element_text(size=12, angle = 0),
        strip.text.y = element_text(size=12, angle = 0),
        plot.title = element_text(size=12, angle = 0))
    

    往期文章:

    1. 最全WGCNA教程(替换数据即可出全部结果与图形)


    2. 精美图形绘制教程

    3. 转录组分析教程

    小杜的生信筆記,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

    相关文章

      网友评论

          本文标题:R语言精美图形绘制系列 | 箱线图绘制

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