removing all the space between two ggplots combined with grid.arrange

后端 未结 2 1146
臣服心动
臣服心动 2020-12-08 14:29

I want to stick two plots without any space between theme (so they share one axis).

Given:

p1 <- qplot(1,1,xlab=\"\")

p1 <- p1 +
  theme(legen         


        
相关标签:
2条回答
  • 2020-12-08 15:03

    You should provide plot.margin for both plots and set negative value for the bottom margin for p1 and upper margin for p2. This will ensure that both plot joins.

    p1 <-  qplot(1,1,xlab="")+
      theme(legend.position="none",
            axis.text.x=element_blank(),
            axis.ticks.x=element_blank(),
            plot.margin=unit(c(1,1,-0.5,1), "cm"))
    p2 <- qplot(1,2)+
      theme(legend.position="none",
            plot.margin=unit(c(-0.5,1,1,1), "cm"))
    
    
    grid.arrange(p1,p2)
    

    enter image description here

    0 讨论(0)
  • try

    + labs(x=NULL)
    

    OR

    + labs(x=NULL, y=NULL)
    

    to remove the left and bottom margins around the plots (p1, p2) before using grid.arrange

    p1 <- qplot(1,1)+
     theme_bw() +
     theme(axis.text.x=element_blank(),
     axis.ticks.x=element_blank(),
     plot.margin = rep(unit(0,"null"),4),
     panel.margin = unit(0,"null"),
     axis.ticks.length = unit(0,"null"),
     axis.ticks.margin = unit(0,"null")) +
     labs(x=NULL)
    p2 <- qplot(1,2)+
     theme_bw() +
     theme(
     plot.margin = rep(unit(0,"null"),4),
     panel.margin = unit(0,"null"),
     axis.ticks.length = unit(0,"null"),
     axis.ticks.margin = unit(0,"null"))
    
    grid.arrange(p1,p2)
    
    0 讨论(0)
提交回复
热议问题