使用R中的spplot设置NA值的颜色

时间:2015-06-17 09:50:44

标签: r

我正在尝试使用spplot包中的函数sp绘制多边形数据,但我的数据框中有一些缺失值(NA)。当我绘制此数据帧时,缺少的值具有透明颜色。我想用黑色绘制它们。我怎么能这样做?

library(sp)
spplot(TestData,12)

这是我的TestData object

2 个答案:

答案 0 :(得分:3)

实现此目的的一种方法是使用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'))

enter image description here

同样,如果您有栅格数据,则可以对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')))

enter image description here

答案 1 :(得分:0)

我正在使用类似于jbaums的解决方案,但是我直接在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表示要在实际数据之前 绘制-因此它可以作为背景。 enter image description here