Я пытаюсь создать геопространственную непрерывную карту тепла, которая не ограничена округами или искусственными границами, используя решетку, очень похожую на Dialect Maps от Katz, и немного отличается от Choropleth Challenge.географические карты тепла с использованием решетки levelplot в R
До сих пор я довольно близко, но я застрял, пытаясь понять, как избежать отображения цветов тепловой карты в районе за пределами географического региона. Смотрите пример ниже:
library(maps)
library(lattice)
# get region border coordinates for the contiguous USA
m <- map("usa")
# make a grid of latitude and longitude, and supply z-values
lons <- seq(min(m$x, na.rm=T), max(m$x, na.rm=T), length.out=30)
lats <- seq(min(m$y, na.rm=T), max(m$y, na.rm=T), length.out=30)
pts <- expand.grid(lons, lats)
names(pts) <- c("lon", "lat")
pts$z <- sin(pts$lat*pi/180) + cos(pts$lon*pi/180)
## (A) eliminate z-values outside of the USA region
# pts$z[ lat & lon outside of region ] <- NA # don't know how to do this
# this could work, but would leave jagged edges around the region border
levelplot(z~lon*lat, pts, aspect="xy",
panel = function(...){
panel.levelplot(...)
panel.xyplot(m$x, m$y, type="l", col="black") # adds USA border
# (B) fill the area outside region with white
# panel.something() # not sure what to use here
})
подход (B), вероятно, хорошо работать, но я не вижу простой способ сделать это. Есть предположения?
Это может быть полезно: http://r-sig-geo.2731867.n2.nabble.com/Clearing-the-area-outside-of-a-polygon-defined-on-a-grid-td7581718 .html – arvi1000