如何阻止使用lattice软件包制作的R中的部分水平图?

如何阻止使用lattice软件包制作的R中的部分水平图?,r,plot,lattice,R,Plot,Lattice,我用lattice软件包在R中绘制了一个变量的水平图。该网格对应于南亚。我只对南亚某些国家的这个变量(气溶胶光学厚度)的值感兴趣。我有一个虚拟变量,对于我感兴趣的国家,它的值为1,否则为0。我可以把这部分网格涂成黑色或其他颜色吗 我无法显示水平图,因为我在stackoverflow的声誉很低。(附加到rhelp交叉发布消息的pdf现在应显示:) 这是我的R代码: levelplot(aod ~ longitude + latitude | factor(day), data = aod_Jan,

我用lattice软件包在R中绘制了一个变量的水平图。该网格对应于南亚。我只对南亚某些国家的这个变量(气溶胶光学厚度)的值感兴趣。我有一个虚拟变量,对于我感兴趣的国家,它的值为1,否则为0。我可以把这部分网格涂成黑色或其他颜色吗

我无法显示水平图,因为我在stackoverflow的声誉很低。(附加到rhelp交叉发布消息的pdf现在应显示:)

这是我的R代码:

levelplot(aod ~ longitude + latitude | factor(day), data = aod_Jan, 
    aspect="iso", contour = TRUE, layout=c(1,1))

使用子集参数进行levelplot。也许:

levelplot(aod ~ longitude + latitude | factor(day), data = aod_Jan, subset = dummy==1,
    aspect="iso", contour = TRUE, layout=c(1,1))

由于您使用的是地理数据,因此,
光栅
包可能对您有用。例如,让我们显示法国的海拔高度(下载此文件或使用
graster::getData
函数)。在
解压缩文件后:

library(raster)
fraAlt <- raster('FRA_alt')
plot(fraAlt) ## Not only France is displayed...
现在可以使用边界遮罩高度光栅:

 fraAltMask <- mask(fraAlt, x)
 plot(fraAltMask) ##Now only France is displayed
现在,所有这些加上叠加的边界:

 s <- stack(fraAlt, fraAltMask)
 layerNames(s) <- c('Alt', 'AltMask')
 boundaries <- as(gadm, 'SpatialLines')
 levelplot(s) + layer(sp.lines(boundaries))

s David以上不是问题的解决方案,因此查询已发布在R帮助上。我得到一个错误,说没有正确的Z矩阵指定。虽然条件对这个假人的工作。我只需要弄清楚如何去掉虚拟值等于0的图形。如果没有更完整的数据描述,任何事情都将是完全的猜测。在levelplot中对该示例进行的实验表明,子集是有效的,并且在进行子集划分时,x和y范围是适当收缩的。只要你不提供任何代码和数据,你的错误的来源将仍然是模糊的。非常感谢!我还没有试过。但我们将在周末这样做。但我想感谢你的回应。奥斯卡:我的问题的性质现在已经改变了。我想在地图上找出印度的州。为此,我有一个印度各州的形状文件。但我不知道如何进一步朝这个方向前进。我希望能够通过shapefile将印第安五国的边界覆盖到这个levelplot上。欢迎提供任何建议。@Ridhima您可以使用
maptools::readShapeLines
阅读形状文件。结果可以覆盖在
层(sp.lines(object))
上。
 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))