我试图使用sp
包中的函数spplot
绘制多边形数据,但我的数据帧中有一些缺失值(NA
)。当我绘制此数据帧时,缺少的值具有透明色。我想把它们画成黑色。我该怎么做呢?
library(sp)
spplot(TestData,12)
这是我的TestData object
发布于 2015-08-26 23:52:37
实现这一点的一种方法是使用latticeExtra::layer_
在标准spplot
下用您喜欢的NA颜色绘制所有多边形。
library(latticeExtra)
spplot(TestData, 12, col.regions=heat.colors(101), at=seq(0, 4, length=100)) +
layer_(sp.polygons(TestData, fill='black'))
同样,如果您具有栅格数据,则可以对layer_
和grid.rect
执行相同的操作
library(raster)
library(latticeExtra)
r <- raster(matrix(runif(100), ncol=10))
r[sample(100, 10)] <- NA
spplot(r, col.regions=grey.colors, at=seq(0, 1, length=100)) +
layer_(grid.rect(0, 0, 2, 2, gp=gpar(fill = 'lightblue')))
发布于 2019-01-29 11:04:36
我使用类似于jbaum的解决方案,但我直接在spplot函数中执行:
spplot(TestData, 12, col.regions=heat.colors(101), at=seq(0, 4, length=100),
sp.layout = list(
list("sp.polygons", TestData, first = TRUE, fill = "black")
)
)
sp.layout
参数允许在绘图中绘制其他空间对象。所以我们用黑色填充来绘制TestData多边形层。参数first = TRUE
表示它将在实际数据之前绘制-因此它充当背景。
https://stackoverflow.com/questions/30888075
复制