30

我想在主题之间没有任何空格的情况下粘贴两个图(因此它们共享一个轴)。

鉴于:

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

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

grid.arrange(p1,p2)

产生:

在此处输入图像描述

我想消除两个图之间的空白。

我有调整高度的印象,就像对宽度所做的那样:左对齐两个图形边缘(ggplot)是解决方案,但无法弄清楚。

4

2 回答 2

42

您应该提供plot.margin两个绘图并为 p1 的下边距和 p2 的上边距设置负值。这将确保两个情节连接。

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)

在此处输入图像描述

于 2013-03-21T19:13:49.100 回答
0

尝试

+ labs(x=NULL)

或者

+ labs(x=NULL, y=NULL)

在使用 grid.arrange 之前删除图 (p1, p2) 周围的左边距和底部边距

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)
于 2013-06-17T13:41:08.113 回答