Как заблокировать часть графика уровня в R, сделанную с помощью решетчатого пакета? - PullRequest
3 голосов
/ 27 сентября 2011

Я сделал график уровня в R переменной, используя пакет решетки. Эта сетка соответствует Южной Азии. Меня интересует только просмотр значений этой переменной (оптическая глубина аэрозоля) для некоторых стран Южной Азии. У меня есть фиктивная переменная, которая принимает значение 1 для стран, которые меня интересуют, и 0 в противном случае. Могу ли я покрасить эту часть сетки в черный или любой другой цвет?

Я не могу показать график уровня, так как у меня низкая репутация с stackoverflow. (PDF-файл, который был прикреплен к перекрестному сообщению rhelp, должен появиться:)

Вот мой код R:

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

enter image description here

Ответы [ 2 ]

4 голосов
/ 28 сентября 2011

Поскольку вы используете географические данные, возможно, пакет 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))
0 голосов
/ 27 сентября 2011

Используйте аргумент подмножества для графика уровня. Может быть:

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