我使用网格包在R中创建了一个级别图。该网格对应于南亚。我只对查看南亚某些国家的这个变量(气溶胶光学深度)的值感兴趣。我有一个虚拟变量,对于我感兴趣的国家/地区取值为1,否则为0。我可以为网格黑色或任何其他颜色的这部分着色吗?
我无法显示级别图,因为我对stackoverflow的声望很低。 (附加到rhelp的交叉发布消息的pdf现在应该出现:)
这是我的R代码:
levelplot(aod ~ longitude + latitude | factor(day), data = aod_Jan,
aspect="iso", contour = TRUE, layout=c(1,1))
答案 0 :(得分:4)
由于您使用的是地理数据,因此raster
包可能对您有用。例如,让我们显示法国的海拔高度(下载此zip
文件或使用raster::getData
功能)。在您unzip
文件之后:
library(raster)
fraAlt <- raster('FRA_alt')
plot(fraAlt) ## Not only France is displayed...
如果您只想显示法国的海拔高度,则需要边界信息:下载此RData
文件(或使用raster::getData
功能)。此RData
包含SpatialPolygonsDataFrame
(名为gadm
),可以使用以下内容转换为Raster
mk <- rasterize(gadm, fraAlt)
现在,您可以使用边界屏蔽高度栅格:
fraAltMask <- mask(fraAlt, x)
plot(fraAltMask) ##Now only France is displayed
最后,如果您想使用lattice
方法,则需要rasterVis
包:
library(rasterVis)
levelplot(fraAlt)
levelplot(fraAltMask)
现在,所有这些都叠加了边界:
s <- stack(fraAlt, fraAltMask)
layerNames(s) <- c('Alt', 'AltMask')
boundaries <- as(gadm, 'SpatialLines')
levelplot(s) + layer(sp.lines(boundaries))
答案 1 :(得分:0)
使用subset参数进行levelplot。也许:
levelplot(aod ~ longitude + latitude | factor(day), data = aod_Jan, subset = dummy==1,
aspect="iso", contour = TRUE, layout=c(1,1))