Подтвердить что ты не робот

Удаление всего пространства между двумя ggplots в сочетании с grid.arrange

Я хочу придерживаться двух графиков без пробелов между темами (поэтому они имеют одну ось).

Дано:

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)

Что производит:

enter image description here

Я хочу исключить пробел между двумя графиками.

У меня есть впечатляющая высота настройки, как это было сделано для ширины в: левый выравнивать два графа графа (ggplot) - это решение, но не может понять это из.

4b9b3361

Ответ 1

Вы должны указать 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)

enter image description here

Ответ 2

попробовать

+ labs(x=NULL)

ИЛИ

+ labs(x=NULL, y=NULL)

чтобы удалить левый и нижний поля вокруг графиков (p1, p2), прежде чем использовать 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)