如何在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
相关产品推荐
相关产品推荐

