gpt4 book ai didi

R - 如何获得两点之间的平滑曲线?

转载 作者:行者123 更新时间:2023-12-02 00:27:11 25 4
gpt4 key购买 nike

我正在尝试使用 R(使用 map 和 wrld_simpl)在世界地图上绘制两个城市之间的界线。

如何在两点之间获得一条平滑线?如果我在美国和澳大利亚之间画一条线,它有三个不同的部分

require(rworldmap)

map("world", col="#f2f2f2", fill=TRUE, bg="white", lwd=0.05)

data(wrld_simpl)

US_lat = wrld_simpl$LAT[wrld_simpl$NAME == 'United States']
US_lon = wrld_simpl$LON[wrld_simpl$NAME == 'United States']

australia_lat = wrld_simpl$LAT[wrld_simpl$NAME == 'Australia']
australia_lon = wrld_simpl$LON[wrld_simpl$NAME == 'Australia']

lines(c(US_lon, US_lat), c(australia_lon, australia_lat))

这画了一条线,但在澳大利亚和美国之间是不正确的。我究竟做错了什么?

最佳答案

方法lines接受一个向量 x x 坐标和 y y 坐标。因此,您的行应如下所示:

lines(c(US_lon, australia_lon), c(US_lat, australia_lat))

如果你想要一个大圆圈,以下将起作用:
require(geosphere)
gc <- gcIntermediate(c(US_lon, US_lat), c(australia_lon, australia_lat), breakAt=TRUE, n=1000)
invisible(lapply(gc, lines, col='red', lwd=2))

关于R - 如何获得两点之间的平滑曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460914/

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