说明:上一篇是基于行政区划进行可视化,本篇是基于卫星地图进行可视化。上一篇指路:基于R的飞机航线数据可视化(行政区划).
数据处理
基础数据的处理与上一篇相同,不做解释。
加载库
ggmap库可以从Google Maps, OpenStreetMap,Stamen Maps获取地图,还可以设置各种地图可视化类型,具体参数设置可以参考R手册(Visualise)–ggmap+baidumap.
library(ggmap)
加载地图
us <- c(left = -130, bottom = 20, right = -65, top = 52)
map <- get_stamenmap(us, zoom = 5)
map1 <- ggmap(map) + geom_point(aes(Lng, Lat), colour = "#FF0000", size=0.1,data = airports)
for(i in 1:nrow(plotdata4)) {
df <- data.frame(x = c(plotdata4[i,c("Lng.x")], plotdata4[i,c("Lng.y")]), y = c(plotdata4[i,c("Lat.x")], plotdata4[i,c("Lat.y")]))
map1 <- map1 + geom_path(data=df,size=0.05,colour = "orange",aes(x=x, y=y))
}
map1
geom_jitter用来结合ggmap画散点图,geom_point也可以。
geom_path用来画线段,也就是航线,注意该函数会将给定的所有点都连接起来,具体可在R中使用?geom_path查看小例子。因此,在本文中使用循环处理,每次给定两个点,进行连线。最后一个语句”map1“将图展示出来。P.S. 数据大的话,循环和最后出图的步骤会特!别!慢!但是真的没有找到其他在卫星图上画线段的方法了。
geom_curve可以区分起点列和终点列,但是并不能和ggmap兼容,反正我这儿会出Bug。
效果图如下: