You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ggOceanMaps中添加geom_quiver()实现海图与流向箭头叠加?

问题:如何在geom_quiver轨迹图上叠加ggOceanMaps水深图层(投影兼容问题)

我用geom_quiver绘制了ggplot图,用于展示部分动物轨迹的移动方向,现在希望在同一图中可视化水深数据。

尝试用ggOceanMaps创建水深图时遇到了投影不兼容的问题:ggOceanMaps默认采用曲面投影,而geom_quiver基于平面投影,且transform_coord()无法处理quiver的u和v分量。目前只能将两个图并列展示,无法在同一投影下叠加图层。

[并列视图图片]

我的代码示例:

dt <- data.frame(lon = c(20, 20, 55, 55), lat = c(-15, -70, -70, -15))

bathy <- basemap(dt, bathymetry = TRUE) + 
  geom_polygon(data = transform_coord(dt), aes(x = lon, y = lat), 
               color = "red", fill = NA)  +
  geom_spatial_point(shape = 10, stroke = 2, size = 10, color = "darkviolet", aes(x= marion_coords[1], y = marion_coords[2]))
  
quivs <-  ggplot() + geom_quiver(data = df_test, aes(x = rounded_lon, y = rounded_lat, u = avg_u, v = avg_v, col = seal_count)) + coord_map("azequidistant")
  
bathy + quivs 

由于数据不属于我,无法提供完整数据,但我给出一个简化的geom_quiver示例代码,如果有人知道如何为它添加水深图层,我可据此推导解决方法:

quivs <- ggplot() + 
  geom_quiver(data = seals, aes(x=long, y=lat, u=delta_long, v=delta_lat)) + coord_map("azequidistant") + borders("state")

[示例图片]


内容的提问来源于stack exchange,提问作者Zac Warham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:41:11