ggplot:叠加两个图
ggplot: overlay two plots
是否可以用 gridExtra(或其他包)叠加两个地块?
我想重新缩放一张图并将其覆盖到第二张图(指定缩放和坐标)
require(ggplot2)
require(gridExtra)
df <- data.frame(value=rnorm(10), date=1:10)
p1 <- ggplot(data.frame(df), aes(value,date)) + geom_line()
p2 <- ggplot(data.frame(df), aes(value,date)) + geom_point()
获得这样的东西
结合 gridExtra
查看 gtable
包。您可以根据需要指定绘图的大小和坐标。
require(gtable)
p1 <- ggplotGrob(p1)
p2 <- ggplotGrob(p2)
gt <- gtable(widths = unit(c(1, 2), "null"), heights = unit(c(.2, 1, 1), "null"))
gt <- gtable_add_grob(gt, p2, t = 1, b = 3, l = 1, r = 2)
gt <- gtable_add_grob(gt, p1, t = 2, l = 2)
grid.draw(gt)
是否可以用 gridExtra(或其他包)叠加两个地块?
我想重新缩放一张图并将其覆盖到第二张图(指定缩放和坐标)
require(ggplot2)
require(gridExtra)
df <- data.frame(value=rnorm(10), date=1:10)
p1 <- ggplot(data.frame(df), aes(value,date)) + geom_line()
p2 <- ggplot(data.frame(df), aes(value,date)) + geom_point()
获得这样的东西
结合 gridExtra
查看 gtable
包。您可以根据需要指定绘图的大小和坐标。
require(gtable)
p1 <- ggplotGrob(p1)
p2 <- ggplotGrob(p2)
gt <- gtable(widths = unit(c(1, 2), "null"), heights = unit(c(.2, 1, 1), "null"))
gt <- gtable_add_grob(gt, p2, t = 1, b = 3, l = 1, r = 2)
gt <- gtable_add_grob(gt, p1, t = 2, l = 2)
grid.draw(gt)