【问题标题】:Add points (Lat-Lon) to a marmap plot将点 (Lat-Lon) 添加到 marmap 图中
【发布时间】:2019-12-31 00:38:17
【问题描述】:

我想在地图上绘制一系列海豹轨迹的经纬度点,每个点都根据一个属性着色,以显示水深(100m 等高线)和海岸线。我学习了如何使用 marmap 和 ggplot2 创建地图以显示测深+海岸线。代码在这里:

dat <- getNOAA.bathy(-58,-62.5,43,46.0,res=0, keep=TRUE)
plot(dat,image=TRUE,bpal = list(c(min(dat), 0, "darkblue", "blue","lightblue"), c(0, max(dat), "gray90","gray10")),drawlabels=TRUE,deep=c(-500,200,0),shallow=c(-500,100,0),step=c(500,100,0),lwd=c(1,1,1),lty=c(1,1,1),land=TRUE)+
  scaleBathy(dat, deg=1.232, x="bottomleft", inset=5) #100km

这创建了一个有用的地图。但是,我对如何在这张地图上添加海豹轨迹感到困惑。

我可以在 ggmap 中执行此操作(使用下面的代码),但我更喜欢 marmap 地图

myLocation <- c(-62.5,43,-58,46)
seal_map2<-get_map(location=myLocation,maptype="watercolor",source="stamen",zoom=10)
ggmap(seal_map2)+
geom_point(data=sealtrack,aes(color=category),size=0.5)+
scale_color_gradientn(colours=rainbow(6), breaks=seq(1,6,by=1)) 

任何指导将不胜感激

【问题讨论】:

  • 使用您创建的经典marmap 地图并使用points(sealtrack, col=some.color.vector[category]) 添加您的印章轨迹有什么问题?另请查看vignette("marmap-DataAnalysis") 的第 6-7 页。我相信这正是您正在寻找的。只需将示例中使用的深度值替换为您的 category 变量为点着色即可。

标签: r ggplot2 maps


【解决方案1】:

在“强化”之后,您应该能够将 marmap 中的测深信息作为等高线图层添加到绘图上。如果没有您的数据,就很难确保它可以正常工作(而且 NOAA 服务器现在对我来说已关闭):

library(ggplot2)
library(marmap)
dat <- getNOAA.bathy(-58,-62.5,43,46.0,res=0, keep=TRUE)
dat <- fortify(dat)
ggmap(seal_map2) +
   geom_contour(dat, aes(x = x, y = y, z = z)) +
   geom_point(data=sealtrack,aes(color=category),size=0.5) +
   scale_color_gradientn(colours=rainbow(6), breaks=seq(1,6,by=1)) 

【讨论】:

  • 谢谢!这适用于gmap。我现在只需要让这张地图和 marmap 中的地图一样有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多