首页 > 解决方案 > 可以在 R 中的地图上覆盖线图吗?

问题描述

我希望编写一个脚本,将每天的鱼标签数据导出为线图,覆盖在地图上,例如(在 Gimp 中完成的丑陋组合):

叠加图

我确信我可以很容易地在基础 R 或 GGplot 中重新创建线图,

我怀疑将它们分成带有顶部图像和底部图像的单个输出应该不会太难,理想情况下以中间面板作为图例,这样它就不会占用绘图本身的空间,

我可以制作地图(已经完成,这是上图中的其中一张),让它们看起来更轻看起来很容易。

问题似乎是背景地图图层是ggplot中的纬度/经度坐标系,而叠加线图是笛卡尔坐标。随后,ggplot(或其他任何东西)将无法直观地将两者对齐,因为它期望一个通用系统,因为预计元素需要能够交互。

非常欢迎任何建议、想法、半点想法、沉思、指针等。我可以用透明背景保存线图,单独保存地图,然后将它们拼接在一起(例如 ImageMagik)吗?首先保存地图,然后添加到 ggplot background_image

提前致谢!

编辑:稍后再回来,我制作了双图并得到了空间点(黑点,底部面板)。当前图像

我现在正在寻找将地图转换为这些坐标。为了转换空间对象的坐标,我挖了进去。df 结构有一个几何列,它是一个列表列表:

natlantic2$geometry[1:nrow][[1]][[1]][[1]][,1] #lon
natlantic2$geometry[1:nrow][[1]][[1]][[1]][,2] #lat

几乎可以提取 lon/lats 的列表

sapply(natlantic2$geometry, "[[", 1)

但它返回:

[[1:nrow]]
         [,1]     [,2]
[1,] 14.76619 44.92003
[2,] 14.76661 44.92208
[3,] 14.83831 44.88453
[4,] 14.76619 44.92003

即 1432 个 2 列 dfs 的列表。所以我很接近了,但我需要更深入地列出一个列表,并且 "[[[" 在sapply. 此外,这 1432 个列表项中的 6 个似乎是包含 2-col dfs 的单项列表,而不是 dfs 本身。恼人的。尝试rapply()至今没有成功。

如果有人对如何转换这些有任何想法,那就太好了。我想知道是否可以通过st_transform使用这些转换作为自定义 crs 进行劫持...?

标签: rggplot2plotmappingpanel

解决方案


推荐阅读