【问题标题】:Set color for NA Value with spplot in R在 R 中使用 spplot 为 NA 值设置颜色
【发布时间】:2015-06-17 09:50:43
【问题描述】:

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

library(sp)
spplot(TestData,12)

这是我的TestData object

【问题讨论】:

    标签: r


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我正在使用类似于 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 表示要在实际数据之前绘制 - 所以它充当背景。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-24
        • 1970-01-01
        • 1970-01-01
        • 2017-12-22
        • 2016-12-12
        • 1970-01-01
        • 2015-06-06
        相关资源
        最近更新 更多