我想用颜色填充ggplot2中的休息点

时间:2017-07-28 15:25:42

标签: r dictionary ggplot2 colors

我有太平洋的几个像素的数据(每个像素是由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)) 

给出:

enter image description here

对于没有内陆的每个像素,我最初想要用蓝色来表示海洋。我也想要一个传说来解释这一点。最后,一旦我处理了数据,我想根据它给出的分类给它着色。这有可能吗?如果它有帮助我有一个所有可能的lon / lat组合的矩阵,我有像素,所以它们可用于参考。

由于

1 个答案:

答案 0 :(得分:0)

mp2看起来像是从shapefile或矢量数据派生出来的;我假设你有第二个光栅(像素)数据层。您可以尝试使用geom_rastergeom_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是用于指定颜色的字段。我还假设您可以重塑您的栅格数据,使其具有latlon列,例如mp2。请注意,您应该在geom_raster之前添加geom_path美学,以便在顶部绘制地图线。