美文网首页【康华同学】:优秀生物信息学博客
R可视化——ggplot2绘图过程中如何实现轴截断?

R可视化——ggplot2绘图过程中如何实现轴截断?

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

    绘制基础图形

    1、加载绘图包——这里主要用到基础绘图包ggplot2和主题设置包ggprism。
    rm(list=ls())#clear Global Environment
    setwd('D:\\桌面\\SCI论文写作与绘图\\R语言绘图\\绘图技巧')#设置工作路径
    
    #加载R包
    library(ggplot2)
    library(ggprism)
    
    2、数据——使用函数rnorm()随机生成作图数据,大家也可以将自己的数据导入进来进行绘图!
    #随机生成一些数据
    df <- data.frame(
      x = c('a','b','c','d','e','f','g','h','i','j'), 
      y = c(rnorm(3) + 20, rnorm(3) + 10, rnorm(4) + 50) )
    
    3、绘制基础图形——这里以常见的柱状图为例进行展示。
    #绘制常规图形
    p1 <- ggplot(df,aes(x,y))+
      geom_col(aes(fill=x))+
      theme_prism(palette = "flames",
                  base_fontface = "plain", 
                  base_family = "serif", 
                  base_size = 16,
                  base_line_size = 0.8,
                  axis_text_angle = 45)+
      theme(legend.position = "none")+
      scale_y_continuous(expand = c(0,0))
    p1
    
    image.png

    轴截断的实现

    R语言中实现轴截断的方法是比较多的,这里主要以ggbreak包为例进行展示:

    #加载实现轴截断所需的R包
    library(ggbreak)
    
    #截断一次
    p2<-p1+scale_y_break(c(30,40),#截断位置及范围
                    space = 0.3,#间距大小
                    scales = 1.5)#上下显示比例,大于1上面比例大,小于1下面比例大
    p2
    
    image.png
    #截断两次
    p3<-p1+scale_y_break(c(5,8),scales = 1.5,space = 0.3)+
      scale_y_break(c(40,45),scales = 1.5,space = 0.3)
    p3
    
    image.png
    #旋转图形并进行截断
    p4<-p1+coord_flip() +
      scale_y_break(c(40,45),scales = 1.8,space = 0.3)
    p4
    
    image.png

    图形展示

    #拼图
    (p1+p2)/(p3+p4)
    
    image.png

    相关文章

      网友评论

        本文标题:R可视化——ggplot2绘图过程中如何实现轴截断?

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