2015-05-29 80 views
3

是否有可能用gridExtra(或其他包)覆盖两个地块?ggplot:覆盖两个地块

我想重新调整一个情节和它覆盖到的第二个(指定缩放和坐标)

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() 

gtable包组合获得这样的事情

enter image description here

+0

'P1; print(p2,vp = viewport(.8,.75,.4,0.4))' – user20650

+0

[嵌入图中的微缩图]可能重复(http://stackoverflow.com/questions/7793935/embedding-a -miniature-plot-in-a-plot) – user20650

回答

2

看与gridExtra。您可以根据需要指定图的大小和坐标。

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

+0

你需要加载'grid'包才能够使用'grid.draw' –