R ggplot удаляет x отметок / заголовков, не удаляя оставленное им пространство - PullRequest
0 голосов
/ 29 июня 2018

В ggplot часто бывает так, что я хочу создать мультиплот, используя grid.arrange() и arrangeGrob(), где метки оси избыточны. Возьмем для примера следующий рисунок:

data = data.frame(x=1:50, y=50:1)
p1=ggplot(data, aes(x=x, y=y)) + geom_line() + xlab("Dimension") + ylab("Magnitude")
p2=ggplot(data, aes(x=x, y=-y)) + geom_line() + xlab("Dimension") + ylab("Magnitude")
grid.arrange(p1, p2, nrow=1)

Очевидно, что метки "Dimenion" и "Magnitude" являются избыточными на самом правом графике.

Я знаю, что могу легко удалить галочки, метки и заголовки:

p2=p2 +
    theme(axis.title.x=element_blank(),
          axis.text.x=element_blank(),
          axis.ticks.x=element_blank(),
          axis.title.y=element_blank(),
          axis.text.y=element_blank(),
          axis.ticks.y=element_blank())
grid.arrange(p1, p2, nrow=1)

Но это оставляет меня с полями, раздавленными на второй фигуре. Я знаю, что мог бы сделать это вручную, пройдя через scale_x_continuous и scale_y_continuous, и вместо того, чтобы просто заменить их пробелами, как я делаю через theme(), я мог бы вручную установить все на "", но это отнимает много времени и требует несколько менее автоматизированного подхода к этому, как element_blank().

Существует ли такой же тривиальный способ удаления ярлыков, не разрушая пространство, которое они ранее занимали? Что-то вроде element blank без аспекта «не назначает пробелов».

1 Ответ

0 голосов
/ 29 июня 2018

Как так?

#devtools::install_github("thomasp85/patchwork")
library(patchwork)
p1 + p2

enter image description here

Не спрашивайте меня, как работает магия. Вы можете узнать больше о функциональности здесь: github.com / thomasp85 / patchwork

...