zoukankan      html  css  js  c++  java
  • 中国国内航线信息的可视化

    上图是对国内机场和航线信息进行了一个简单的可视化。圆点表示了中国163个机场的位置,线条显示了5381条航线。之前曾在这个网站上见到了作者用R语言来对全世界的航线进行可视化。正所谓见贤思齐,本图就是模仿山寨的结果。但是这个图的生成没有原文那么复杂,所用到的地理图形包和步骤也与原例略有不同,比较失败的是没有展现出原图的夜景效果。具体实施的步骤如下:

        从这个网站下载到机场数据和航线数据;
        从中挑选出中国的机场和国内航线,并加以整理;
        用ggmap包读取谷歌地图;
        将机场和航线信息绘制在地图上。

     

    library(ggmap)
    data.port <- read.csv('d:\\airports.dat',F)
    data.line <- read.csv('d:\\routes.dat',F)
    library(stringr)
    # 找到中国的机场
    portinchina <- str_detect(data.port[,'V4'], "China")
    chinaport <- data.port[portinchina,]
    # 去除少数几个没有编号的机场
    chinaport <-chinaport[chinaport$V5!='',
                          c('V3','V5','V7','V8','V9')]
    names(chinaport) <- c('city','code','lan','lon','att')
     
    # 找出国内航班
    lineinchina <- (data.line[,'V3'] %in% chinaport$code) & (data.line[,'V5'] %in% chinaport$code)
    chinaline <- data.line[lineinchina,c('V3','V5','V9')]
    names(chinaline) <- c('source','destination','equipment')
     
    #构建一个函数,根据机场编码得到经纬度
    findposition <- function(code) {
        find <- chinaport$code==code
        x <- chinaport[find,'lon']
        y <- chinaport[find,'lan']
        return(data.frame(x,y))
    }
     
    # 将机场编码转为经纬度
    from <- lapply(as.character(chinaline$source),findposition)
    from <- do.call('rbind',from)
    from$group <- 1:dim(from)[1]
    names(from) <- c('lon','lan','group')
     
    to <- lapply(as.character(chinaline$destination),findposition)
    to <- do.call('rbind',to)
    to$group <-1:dim(to)[1]
    names(to) <-c('lon','lan','group')
    data.line <- rbind(from,to)
    temp<- data.line[data.line$group<100,]
    # 用ggmap包从google读取地图数据,并将之前的数据标注在地图上。
    ggmap(get_googlemap(center = 'china', zoom=4,
                        maptype='roadmap'),extent='device')+
        geom_point(data=chinaport,aes(x=lon,y=lan),
                   colour = 'red4',alpha=0.8)+
        geom_line(data=data.line,aes(x=lon,y=lan,group=group),
                  size=0.1,alpha=0.05,color='red4'

    有兴趣的同学还可以进一步研究,哪个航线最远,分布如何,哪条航线最多,航线飞机档次如何,哪个机场海拔最高,哪个机场最忙.

    from: http://xccds1977.blogspot.com/2012/07/blog-post_26.html

    TRUST WITHOUT WAVERING
  • 相关阅读:
    mysql 8.0.18 mgr节点状态长时间处于RECOVERING 状态
    mgr安装 加入第二个节点报错-[ERROR] [MY-011526] [Repl] Plugin group_replication reported: 'This member has more executed transactions than those present in the grou
    mgr安装-启动主节点报错-[ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Unable to announce tcp port
    sqlserver维护计划无法删除处理
    ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
    keepalived-2.0.15 编译安装报错
    论自由与素质
    乘法表
    python函数和方法
    python三引号的用法
  • 原文地址:https://www.cnblogs.com/vivizhyy/p/2680270.html
Copyright © 2011-2022 走看看