library(tidyverse)
library(grid)
df <- tibble(
date = as.Date(40100:40129, origin = "1899-12-30"),
value = rnorm(30, 8)
)
p1 <- ggplot(df, aes(date, value)) +
geom_line() +
scale_x_date(date_breaks = "1 day") +
theme(
axis.title.x = element_blank(),
axis.text.x = element_text(angle = 90, vjust = 0.5)
) +
coord_cartesian(xlim = c(min(df$date) + 0, max(df$date) - 0))
p2 <- ggplot(df, aes(date, value)) +
geom_bar(stat = "identity") +
scale_x_date(date_breaks = "1 day") +
theme(
axis.title.x = element_blank(),
axis.text.x = element_text(angle = 90, vjust = 0.5)
) +
coord_cartesian(xlim = c(min(df$date) + 0, max(df$date) - 0))
让我们来创建情节
p1
和
如上图所示。我可以用完全相同的宽度(缩放到全屏以使其清晰可见)来绘制这些堆叠在一起的图像。注意日期排得很整齐。代码就在下面。
grid.newpage()
grid.draw(rbind(ggplotGrob(p1), ggplotGrob(p2), size = "last"))
ggsave()
gridExtra::grid.arrange(p1, p2)
这几乎是可行的,但请注意日期并不是很完美地排列在一起,以垂直的方式比较顶部图形和底部图形。
所以。。。
相当于什么
rbind()
size = "last"
给我拿两个
grid.arrange