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
  • 相关阅读:
    好用的辅助工具
    摆脱单体架构黑洞>>>>走向微服务的乐园
    什么是 jQuery 事件
    WebDriver一些常见问题的解决方法【转】
    IE浏览器相关的问题及解决方案[转]
    fix org.openqa.selenium.NoSuchWindowException when find element on ie11.
    BI案例:BI在连锁零售业应用(ZT)【转】
    SQL 基础语法(创建表空间、用户、并授予权限、数据的增删改查) --(学习笔记)[转]
    创建数据库和表的SQL语句【转】
    T-sql语句中GO的作用及语法【转】
  • 原文地址:https://www.cnblogs.com/vivizhyy/p/2680270.html
Copyright © 2011-2022 走看看