如何将柱状图y轴截断

作者: 杨博士聊生信 | 来源:发表于2021-01-23 19:33 被阅读0次

    Hello,大家好,最近碰到做图需要将y轴截断,当然很多工具都可以实现这个目的,比如excel, origin,在这我们聊聊如何使用R将y轴截断。
    先看一下原图


    image.png

    现在我想将上图的y轴截


    image.png

    使用R画这个图很简单,只需三步,1)画上面半部分,2)画下面半部分,3)最后将上下两部分图拼接到一起。

    1)先画下面半部分

    ​#加载画图所需要的R包,如果没安装ggplot2,请使用install.packages()自行安装
    library(ggplot2)
    library(ggpubr) #基于ggplot2的可视化包
    ​
    #使用read.table读入数据
    data <- read.table("sample.txt", header = T)
    data #查看一下输入的数据格式
    
    image.png
    #去掉背景网格
    theme <- theme(panel.background = element_blank(),panel.border=element_rect(fill=NA,linetype = 1, color="black",size=1))
    fig1 <- ggplot(data,aes(x=treatment,y=content,fill =treatment )) + geom_bar(stat='identity',position=position_dodge()) +
      labs(x="treatment",y="FPKM")+    #使用labs自定义x轴和y轴标签名字
      coord_cartesian(ylim = c(0,9)) +  #使用ylim设置下面一半的范围
      geom_errorbar(aes(x=treatment, ymin=content-SE, ymax=content+SE), width=0.4, colour="black", alpha=0.9, size=1.3) + #添加误差棒
      theme
    fig1 #下面半部分
    
    image.png

    2)画上面半部分

    fig2 <- ggplot(data,aes(x=treatment,y=content,fill =treatment)) + geom_bar(stat='identity',position=position_dodge()) +
      labs(x=NULL,y=NULL) +   #上面半部分标签不需要添加
      theme(axis.text.x = element_blank(),axis.ticks.x = element_blank()) +     #去掉X轴和X轴的文字
      coord_cartesian(ylim = c(17,20)) +  #使用ylim设置上面一半的范围
      scale_y_continuous(breaks = c(17,20,1)) + 
      geom_errorbar(aes(x=treatment, ymin=content-SE, ymax=content+SE), width=0.4, colour="black", alpha=0.9, size=1.3) + #添加误差棒
      theme
    ​
    fig2
    
    image.png

    3)利用ggrange将上下两部分拼接起来

    #利用ggarrange()可以组合不同的图,align为对齐参数, align = "v"为垂直对齐, align = "h"为水平对齐
    ggarrange(fig2,fig1,heights=c(2/5, 3/5),ncol = 1, nrow = 2,common.legend = T,legend="right",align = "v")
    
    image.png

    perfect!如果对配色或者其它地方不满意,我们可以将该图保存为pdf格式,再使用AI进行精修。

    参考:
    https://ggplot2-book.org
    R语言-ggplot2画图如何截断y 轴(https://www.jianshu.com/p/79331cb85a03?from=singlemessage

    相关文章

      网友评论

        本文标题:如何将柱状图y轴截断

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