美文网首页R语言
R可视化——ggplot2调整柱状图柱子宽度及间距

R可视化——ggplot2调整柱状图柱子宽度及间距

作者: 科研那点事儿 | 来源:发表于2022-07-31 10:06 被阅读0次

    安装、加载包

    1、设置工作目录

    #设置工作环境
    rm(list=ls())
    setwd("D:\\桌面\\ggplot2调整柱状图柱子间距")
    

    2、安装、加载包

    #安装包
    # install.packages("ggplot2")
    # install.packages("ggprism")
    #加载包
    library(ggplot2)
    library(ggprism)
    

    数据

    这里使用编写数据,大家也可以导入自己的作图数据

    #数据
    df<-data.frame(
      group=c('A','B','C'),
      value=c(3,5,7))
    

    基本绘图

    p<-ggplot(df,aes(group,value,color=group,fill=group))+
      labs(x="Samples",y=NULL)+
      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")
    
    p+geom_bar(stat="identity",position="dodge")
    
    image.png

    调整柱子宽度

    主要通过geom_bar函数中的width参数进行控制

    #调整柱子宽度
    p+geom_bar(stat="summary",fun=mean,position="dodge",width =0.5)
    
    image.png

    调整柱子间距

    主要通过将X轴转变为连续变量并通过控制变量大小以改变柱间距离,我们先给原数据加一列连续变量:

    df$x<-c(1,2,3)#添加连续变量
    
    #绘图
    p1<-ggplot(df,aes(x,value,color=group,fill=group))+
      geom_bar(stat="identity",position="dodge",width = 0.5) +
      labs(x="Samples",y=NULL)+#标题
      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")
    p1
    
    image.png

    改变X轴及其标签

    p1+scale_x_continuous(limits=c(0.5,3.5),breaks=c(1,2,3),
                          labels = c('A','B','C'))
    
    image.png

    增大某两个柱子间的距离

    df$x<-c(1,2,4)#改变连续变量值
    ggplot(df,aes(x,value,color=group,fill=group))+
      geom_bar(stat="identity",position="dodge",width = 0.5) +
      labs(x="Samples",y=NULL)+#标题
      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")+
    scale_x_continuous(limits=c(0.5,4.5),breaks=c(1,2,3,4),
                          labels = c('A','B','','C'))+#改变X轴
      theme(axis.ticks.x = element_blank())#关闭X轴刻度
    
    image.png

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

    相关文章

      网友评论

        本文标题:R可视化——ggplot2调整柱状图柱子宽度及间距

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