美文网首页
【R图秀-9】12306列车数据可视化

【R图秀-9】12306列车数据可视化

作者: Rapp | 来源:发表于2016-09-23 14:59 被阅读417次

昨天在“36大数据”公众号上看到protream写的一篇文章《用Python写一个命令行火车票查看器》,作者用Python抓取12306官网上的火车票信息,并写成了一个命令行的小工具。看完这篇文章后,我决定借鉴他的方法,用R语言来试着分析一下12306官网上的列车数据。我的目的不是做一个同样的命令行火车票查看器,而是通过实战来练习如何抓取、整理、分析数据,并对分析结果进行可视化。

在抓取数据前,首先要确定列车的出发地和目的地是哪里。我选择上海作为出发地,12306官网上的其他32个热门城市作为目的地。发车时间选择十一国庆节(2016-10-01)

下面是我整理出来的32个目的地的名称和12306提供的英文缩写:


city.png

我定义了一个名为search_12306的函数,用来抓取数据。该函数调用12306的API(找到这个API的方法可以参考前面提到的那篇文章),然后用R的jsonlite包来解析API返回的json字符串,最后转成R的data.frame数据。

为了方便提取这个data.frame中的数据,我又定义了一个名为parse_tickets_info的函数来处理这个data.frame,并将整理好的数据用一个list返回。
加载的软件包和自定义的2个函数代码如下:


code1.png

工具已经准备完毕,接下来就正式抓取数据。首先读入目的地文件,然后用一个apply函数将目的地参数传递给search_12306函数,抓取到的32个城市的信息存在一个list里。然后再用一个lapply函数将抓取到的每个目的地的信息传递给parse_tickets_info函数,结果同样保存在一个list里。
代码如下:


code2.png

至此,数据也准备完毕,下面我们一起来作图:

  1. 从上海出发的列车中,出发的高峰时间是几点钟,到达目的地的高峰时间是几点钟?


    start_end_time.png

    从图上可以看,中午出发的列车较少,在上午和下午各有一个出发高峰,到达目的地的时间大多在下午和傍晚。
    代码如下:


    code3.png
  2. 从上海出发的列车中,有多少是始发车,多少是过路车?


    start_pass.png

    从图上可以看到,从上海到南京和杭州的列车是最多的(江浙沪的交通是最便利的),而且从上海始发的列车远远多于过路车。
    代码如下:


    code5.png
  3. 到各个城市的车次类型有哪些?


    train_code.png

    从这个图可以方便的看到,上海到哪些城市开通了高铁。
    代码如下:


    code6.png
  4. 到达某个目的地,最快和最慢的列车分别需要多长时间?


    lishi.png

    根据这幅图,大家可以估计一下坐火车到你想去的城市需要多少时间。
    代码如下:


    code4.png
  5. 十一长假就要到了,我们看看到各个城市的剩余车票还有多少,到不同的城市的订票趋势是否有差异?


    ticket_heatmap.png

    从图上可以看到,1号的票已经卖的差不多了,3号和4号的车票比较富余,6号和7号的票也比较紧俏。需要注意的是,车票数据会实时变化,这幅图只代表了9月23号的余票情况。我对余票信息做了聚类,发现从上海到不同的城市的订票趋势还是有一些差异,但总体趋势是一致的。
    代码如下:


    code7.png

今天的【R图秀】给大家展示的是如何用R来分析从上海到其他城市的列车数据,感兴趣的小伙伴们也可以研究一下自己所在城市的列车数据。


qrcode.jpg

相关文章

  • 【R图秀-9】12306列车数据可视化

    昨天在“36大数据”公众号上看到protream写的一篇文章《用Python写一个命令行火车票查看器》,作者用Py...

  • 【R图秀】文章列表

    【R图秀】主要介绍如何用R来实现数据可视化。 用REmap绘制Rapper地图 用R打造炫酷彩色二维码 哪个国家最...

  • 【R爬虫-1】BBC Learning English

    在【R图秀】中,我们已经学会如何从网上抓取数据并进行可视化分析。为了刻意练习写R爬虫的技能,Rapp又专门推出【R...

  • 火山图

    参考这篇:R数据可视化1: 火山图

  • 03-08

    06 R语言作图 图就是数据,数据就是图 常用可视化R包 作图:base,ggplot2, ggpubr;拼图:p...

  • 【R图秀-8】社交网络数据可视化(一)

    R图秀从今天起将陆续推出新的系列文章:《社交网络数据可视化》。 在分析里约奥运数据的时候,我们运用了不少R的爬虫技...

  • R语言之可视化①④一页多图(1)

    目录 R语言之可视化①误差棒 R语言之可视化②点图 R语言之可视化③点图续 R语言之可视化④点韦恩图upsetR ...

  • R语言之可视化⑥R图形系统续

    目录 R语言之可视化①误差棒 R语言之可视化②点图 R语言之可视化③点图续 R语言之可视化④点韦恩图upsetR ...

  • R语言之可视化⑩坐标系统

    目录 R语言之可视化①误差棒 R语言之可视化②点图 R语言之可视化③点图续 R语言之可视化④点韦恩图upsetR ...

  • R语言之可视化⑨火山图

    目录 R语言之可视化①误差棒 R语言之可视化②点图 R语言之可视化③点图续 R语言之可视化④点韦恩图upsetR ...

网友评论

      本文标题:【R图秀-9】12306列车数据可视化

      本文链接:https://www.haomeiwen.com/subject/quutyttx.html