【问题标题】:How to plot additional raster with spplot?如何使用 spplot 绘制额外的栅格?
【发布时间】:2014-11-21 13:42:19
【问题描述】:

我想将 SpatialPolygonsDataFrame 绘制为半透明的主要对象(右侧带有图例),但我想绘制另外的栅格(山体阴影)作为背景 - 只是为了制作更好的地图。我需要类似的东西:

spplot(polygons, sp.layout = list(list("raster", myRaster)))

但是查看?spplot,似乎无法在sp.layout 中指定栅格。我无法将栅格指定为主对象,因为主对象是polygons dataFrame,我想在右侧的图例中绘制其值比例。

如何在 spplot 中绘制额外的栅格?

【问题讨论】:

标签: r plot gis


【解决方案1】:

这是一种方法。不过,可能有一种更简洁的方法来实现它,而无需两次绘制多边形对象...

library(sp)
library(rasterVis)
r <- raster(nrow=18, ncol=36)
r[] <- runif(ncell(r)) * 10
r[r > 8] <- NA
pol <- rasterToPolygons(r, function(x) x > 6)
spplot(pol) + levelplot(r) + spplot(pol)

或者:

library(latticeExtra)
spplot(pol) + spplot(r) + spplot(pol)


编辑

根据@OscarPerpiñán 的评论,更好的方法是:

spplot(pol) + as.layer(spplot(r), under = TRUE)

【讨论】:

  • 谢谢jbaums,我会试试的。你可以sum这些情节吗?它有什么作用?
  • @TMS - 这是latticeExtra 提供的+ 方法(我认为)。见?latticeExtra::layer
  • 使用as.layer,您可以简化调用:spplot(pol) + as.layer(levelplot(r), under = TRUE)spplot(pol) + as.layer(spplot(r), under = TRUE)
  • @Oscar - 太棒了,谢谢。不知道我是怎么错过文档中的under 的。
  • @TMS 我不明白为什么两种解决方案都会得到不同的结果。请发布一个可重现的示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-27
  • 2014-10-11
  • 1970-01-01
  • 2018-04-19
相关资源
最近更新 更多