我有太平洋的几个像素的数据(每个像素是由lat和lon值表示的250km ^ 2平方的海洋)。我在R中有以下代码来绘制我的地图,其中包含代表我有以下数据的每个像素的小间隔:
mp1 <- fortify(map(fill=TRUE, plot=FALSE))
mp2 <- mp1
mp2$long <- mp2$long + 360
mp2$group <- mp2$group + max(mp2$group) + 1
mp <- rbind(mp1, mp2)
ggplot(aes(x = long, y = lat, group = group), data = mp) +
geom_path() +
scale_x_continuous(name="Longitude",minor_breaks=seq(170,246,2), limits = c(170, 246)) +
scale_y_continuous(name= "Latitude",minor_breaks=seq(30,64,2),limits = c(30, 64))
给出:
对于没有内陆的每个像素,我最初想要用蓝色来表示海洋。我也想要一个传说来解释这一点。最后,一旦我处理了数据,我想根据它给出的分类给它着色。这有可能吗?如果它有帮助我有一个所有可能的lon / lat组合的矩阵,我有像素,所以它们可用于参考。
由于
答案 0 :(得分:0)
mp2
看起来像是从shapefile或矢量数据派生出来的;我假设你有第二个光栅(像素)数据层。您可以尝试使用geom_raster
或geom_tile
:
ggplot(aes(x = long, y = lat, group = group), data = mp) +
geom_raster(data = rasterdat, aes(fill = colorvar)) +
geom_path() +
scale_x_continuous(name="Longitude",minor_breaks=seq(170,246,2),
limits = c(170, 246)) +
scale_y_continuous(name= "Latitude",minor_breaks=seq(30,64,2),
limits = c(30, 64))
其中rasterdat
是栅格数据的数据框,colorvar
是用于指定颜色的字段。我还假设您可以重塑您的栅格数据,使其具有lat
和lon
列,例如mp2
。请注意,您应该在geom_raster
之前添加geom_path
美学,以便在顶部绘制地图线。