使用ggplot2制作三个图表的方法

3
我想要三个图表,第一个图表在另外两个的上方。我已经可以生成底部的两个图表,但是无法生成顶部的大图表: enter image description here 以下是生成此图表的代码:
grid.newpage()
pushViewport(viewport(layout=grid.layout(3,2)))

vplayout <- function(x,y)
  viewport(layout.pos.row = x, layout.pos.col = y)

psig <- function(x, y, z){
  h <- data.frame(index = c(1:length(subsignals[[x]])),
                  orders = subsignals[[x]])
  lab <- paste("Subseries ", as.character(x), sep="")
  print(qplot(index, orders, data = h, geom = "line", main=lab), vp = vplayout(y,z))
  TRUE
}

psig(1,3,1); psig(2,3,2); 

我有一个参数 datalist
datalis<-c(#some data)

我想在这两个图表的顶部绘制数据列表(可能会有多于两个图表位于底部,但我希望将datalist图表放置在其他图表的顶部。

我该如何实现?


1
我发现像这样的任务更容易使用将arrangeGrob嵌套在grid.arrange中(两者都来自gridExtra包)。 - Roland
谢谢,但是我该如何使用它们? - Kaja
1个回答

4

使用arrangeGrob,你可以做到如下操作:

library(gridExtra)
print(arrangeGrob(p1,arrangeGrob(p2 , p3,nrow=1), nrow=2,heights=c(3, 1)))

例如:

library(gridExtra)
library(ggplot2)
p0 <- ggplot(cars)+geom_line(aes(speed,dist))

print(arrangeGrob(p0,arrangeGrob(p0 , p0,nrow=1), nrow=2,
             heights=c(3, 1)))

enter image description here


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