ggplot:叠加两个图表

4

是否可以使用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()

需要获得类似此图片的效果:

enter image description here


p1 ; print(p2,vp=viewport(.8, .75, .4, 0.4) ) - user20650
可能是在图表中嵌入小型图表的重复问题。 - user20650
1个回答

4
请查看与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)

enter image description here


1
您需要加载“grid”包才能使用“grid.draw”。 - moodymudskipper
请问您能否详细说明如何为图表指定坐标?因为我找不到它的工作原理。谢谢。 - D1X

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接