gpt4 book ai didi

r - 使用 marmap 包和 getNOAA.bathy 将测深线添加到 ggplot

转载 作者:行者123 更新时间:2023-12-04 22:20:18 27 4
gpt4 key购买 nike

我想将测深线添加到我正在查看的 map 图中。我正在绘制海岸附近的点,我们对它们离大陆架的距离很感兴趣。我见过一个叫做 Marmap 的包 - 但现在我使用 ggplot 因为它提供了更高的分辨率。

我看到的用于获取测深线的代码是这样的:

library(marmap)

Peru.bath <- getNOAA.bathy (lon1 = -90, lon2 = -70, lat1 = -20,
lat2 = -2, resolution = 10)

plot(Peru.bath)

我要添加测深线的代码如下:
coast_map <- fortify(map("worldHires", fill=TRUE, plot=FALSE))
gg <- ggplot()
gg <- gg + geom_map(data=coast_map, map=coast_map,
aes(x=long, y=lat, map_id=region),
fill="white", color="black") +
theme(panel.background = element_blank()) +
theme(panel.grid.major = element_blank()) +
theme(panel.grid.minor = element_blank()) +
theme(axis.text.x = element_blank(), axis.text.y = element_blank(), axis.ticks = element_blank())
gg <- gg + xlab("") + ylab("")
gg <- gg + geom_map(data=data.frame(region="Peru"), map=coast_map,
aes(map_id=region), fill="gray")
gg <- gg + xlim(-90,-70) + ylim(-20,-2)
gg <- gg + coord_map()
gg

因此我认为它会是
gg <- gg + Peru.bath

但是我收到“错误:不知道如何将 Peru.bath 添加到情节中”

NB 只是为了清楚起见,我没有测深数据,如果可能的话,我只想将已知的货架线绘制到我创建的 map 上。

最佳答案

我刚刚在 github 上更新了 marmap 的开发版本。您可以使用以下命令安装它:

library(devtools)
install_github("ericpante/marmap")

一个函数 autoplot.bathy()现在包括使用 ggplot2 绘制深海对象。请务必检查它的帮助文件和示例以了解可能的情况。这是您的数据集 dat 的示例:
library(marmap) ; library(ggplot2)
dat <- getNOAA.bathy(-90,-70,-20,-2,res=4, keep=TRUE)

# Plot bathy object using custom ggplot2 functions
autoplot(dat, geom=c("r", "c"), colour="white", size=0.1) + scale_fill_etopo()

enter image description here

关于r - 使用 marmap 包和 getNOAA.bathy 将测深线添加到 ggplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com