使用spplot在R中的单个页面上放置多个图?

时间:2015-09-03 14:16:38

标签: r plot

我知道在使用简单函数图时如何绘制两个图:

 old.par <- par(mfrow=c(1, 2))
 plot(faithful, main="Faithful eruptions")
 plot(large.islands, main="Islands", ylab="Area")
 par(old.par)

这会像......那样回归:

enter image description here

我需要为相当复杂的spplot函数做同样的事情。我想要的是3 x 3平方。

我想要绘制9次的函数是:

labelat = fivenum(gwr.res$SDF$Unempl)
labeltext = labelat 


spplot(gwr.res$SDF, "Unempl", cuts = 4, at = c(fivenum(gwr.res$SDF$Unempl)),     col.regions = Greens,
    colorkey=list(width=0.3,      
              space="right", 
              tick.number=5, 
              labels=list(  
                at=labelat, 
                labels=labeltext ))) 

关于如何解决这个问题的任何想法?

谢谢,

2 个答案:

答案 0 :(得分:7)

使用包grid.arrange中的gridExtra。执行grid.arrange(spplot(..),spplot(...),spplot(.....))等会将它们排列在网格中。

以下是使用meuse数据集生成9个此类图表的示例,然后使用do.call来保存必须执行grid.arrange(plots[[1], plots[[2]],,依此类推至9:

> require(gridExtra)
> plots = lapply(names(meuse)[1:9], function(.x) spplot(meuse,.x))
> do.call(grid.arrange,plots)

3x3 grid

答案 1 :(得分:3)

甚至更简单:

grid.arrange(spplot(df.voro2, "my.data", xlab = "x", ylab = "y", main = "my title") , 
             spplot(df.voro, "dummy", xlab = "x2", ylab = "y2", main = "my title2" ))

enter image description here