Как сохранить размеры графиков при укладке с обычными осями X в ggarrange?

Я пытаюсь составлять графики с общими осями X и Y в ggplot. То, что я хочу сделать, это иметь только нижний график, показывающий метки оси X и заголовки. Но я никогда не мог понять, как сделать это чисто в ggplot2 без того, чтобы нижний график был сжат, неся достоинство меток / заголовка оси x. Должен быть простой способ сделать это - каждый хочет составлять графики, верно?!

Я сейчас пытаюсь с ggarrange. Пример кода ниже. Обратите внимание, что нижний график сжимается вертикально, потому что он имеет метки тика и оси. Я мог бы просто сделать так, чтобы у первых двух были белые надписи / заголовки, но тогда между этими тремя было бы неприлично много места, если вы используете этот хак.

Я определенно открыт для пакетов, отличных от gpubr, но я надеюсь на что-то не слишком сложное, что я могу использовать в последующих ситуациях, так как я уверен, что столкнусь с этим снова...

Помогите, пожалуйста!! -Ryan

#
require(ggplot2); require(ggpubr)

X=data.frame(seq(as.Date("2001-01-01"),as.Date("2001-12-31"),by='days')); colnames(X)='date'
X$Y1=sample(80:100,size=nrow(X),replace=T)
X$Y2=sample(100:120,size=nrow(X),replace=T)
X$Y3=sample(50:70,size=nrow(X),replace=T)

plot.Y1= ggplot(X, aes(x=date,y=Y1))+
  geom_line()+lims(y=c(50,150))+
  theme(axis.title.x = element_blank(),axis.text.x=element_blank())

plot.Y2= ggplot(X, aes(x=date,y=Y2))+
  geom_line()+lims(y=c(50,150))+
  theme(axis.title.x = element_blank(),axis.text.x=element_blank())

plot.Y3= ggplot(X, aes(x=date,y=Y3))+
  geom_line()+lims(y=c(50,150))

x11(10,8)

ggarrange(plot.Y1,plot.Y2,plot.Y3,nrow=3,ncol=1)

Нижний участок сплющен!

1 ответ

Решение

Попробуй это,

egg::ggarrange(plot.Y1,plot.Y2,plot.Y3,ncol=1)

Другие вопросы по тегам