В 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 без аспекта «не назначает пробелов».