我刚刚开始用R来可视化数据 我一直在努力创建一个基于各种事物的起源和目的地的拉特和长数据的流程图。数据位于.csv文件中。 地图显示得非常好,表示流的线也在那里;但是,我似乎无法让他们拥有方向指标。 任何帮助/想法都会很棒!
以下是显示地图和线条的代码:
library(maps)
library(geosphere)
library(sp)
library(maptools)
library(OpenStreetMap)
library(rgdal)
library(rgeos)
map <- openmap(c(70, -179), c(-70,179), type='bing', zoom=5)
map_longlat <- openproj(map, projection = "+proj=longlat")
plot(map_longlat,raster=TRUE)
flows <-read.csv("myfile", sep=",", header=TRUE)
for (i in 1:nrow(flows)){
inter<- gcIntermediate(c(flows$org_long[i], flwos$org_lat[i]), c(flows$dest)long[i], flows$dest_lat[i]), n=50, addStartEnd=TRUE)
lines(inter, col="red", lwd = 0 + c(flows$count[i])
}
谢谢!
答案 0 :(得分:0)
这是使用ggplot2
和曲线的简单解决方案。请注意参数arrow
。如果你想要一个更专业的地图,考虑到行星的球面曲率,使用位置之间的最短路线,这里有一个解决方案here。
ggplot() +
geom_curve(data = OD, aes(x = longitude.x, y = latitude.x,
xend = longitude.y, yend = latitude.y),
curvature = -0.2, arrow = arrow(length = unit(0.01, "npc"))) +
coord_equal()