美文网首页
【R图秀-6】图说里约奥运(二)

【R图秀-6】图说里约奥运(二)

作者: Rapp | 来源:发表于2016-08-12 15:01 被阅读57次

    上期R图秀抓取并展示了本届奥运会的各个国家和比赛项目的数据,今天我们再增加一点难度,玩一玩运动员的数据。

    为什么说今天的难度比上次大呢?主要原因是在Rio2016官网上抓取运动员数据的时候遇到了一点小麻烦。

    我是根据每个比赛项目分别抓取运动员数据,由于运动员数目比较多,网页上最初只展示5名运动员,如果要看更多的信息,必须要点击“LOAD MORE”,每次点击只能多显示5名运动员。熟悉javascript的同学肯定知道,这是利用了AJAX技术,简单的说就是在不刷新整个页面的情况下,动态更新页面中的局部信息,提高了网页的交互性。这下用Rvest就很困难了。如果自己去点每一个“LOAD MORE”,真的会“生不如死”的。


    loadmore.png

    今天就给大家再介绍一个神器:Selenium。它可以控制你的浏览器做出指定的动作,换句话说,它可以让你写一个程序来代替你上网。听上去是不是很酷?更酷的是,R有一个包(RSelenium)可以提供接口,让你通过写R程序来控制浏览器!这样我就可以让R程序来帮我不断的点击“LOAD MORE”,直到所有的运动员都展示在页面上,然后就可以“一网打尽”!


    selenium.png

    友情提示:我大概花了一天时间才掌握RSelenium的使用,对初学者来说可能需要花的时间会更长,多一点耐心,多查查Google会很有帮助!

    抓取运动员数据的步骤是:

    1. 利用RSelenium抓取每个运动员所对应的URL,代码如下:


      code4.png
    2. 利用Rvest在每个运动员的页面上抓取感兴趣的数据:姓名,国家,比赛项目,性别,年龄,出生月,身高,体重。代码如下:


      code5.png

    由于数据量较大,抓取的时间会稍微久一些。

    有了数据以后,接下来需要思考一下,我想知道关于运动员的哪些信息?

    1. 我想知道奥运运动员里最流行的名字有哪些?
    2. 本届奥运会的男女运动员比例是怎样的?
    3. 哪个月份出生的奥运运动员最多?灵感来自于一本叫《异类》的书,里面也研究过出生月份和运动员成长之间的关系
    4. 年龄、身高、体重是如何分布的?男女运动员的差异有多大?
    5. 谁的年纪最小/大,谁最高/矮,谁最重/轻?

    有了问题就有了方向,接下来就是秀图时间:

    1. Name Cloud,使用的是wordcloud2包。是不是看到了很多熟悉的名字呢?


      Rio2016_namecloud.png

      代码如下(# name cloud部分):


      code6.png
    2. 男女运动员比例,还是男运动员稍微多一些


      Rio2016_gender_pie.png

      代码见上图(# gender pie部分)

    3. 出生月份分布图,一月份出生的男运动员较多,而4月份出生的女运动员较多,原因是什么?我也不知道!回去再好好看看《异类》那本书


      Rio2016_month_bar.png

      代码如下:


      code8.png
    4. 年龄分布图,男女基本一致,女运动员稍微年轻一些


      Rio2016_age_hist.png
    5. 身高分布图,还是男生高一些,符合预期


      Rio2016_height_hist.png
    6. 体重分布图,还是男生“胖”一点阿


      Rio2016_weight_hist.png

      上面三副图的代码如下:


      code7.png
    7. 比比谁最年轻、谁最高、谁最重。怎么看上去有点像结婚证的赶脚?


      Rio2016_age_barplot.png
      Rio2016_height_barplot.png
      Rio2016_weight_barplot.png

      代码如下(只展示了第一副图的代码,后面的代码类似):


      code9.png

    友情提示:代码中大量运用了dplyr包的函数和pipe(%>%),初学者看起来可能会有点吃力。没有关系,Rapp公众号会陆续推出相关教程,让我们一起来学习吧。

    【图说里约奥运】共有3集,前2集展示的是各个国家和运动员的数据。为了展示最完整的奥运奖牌榜,最后1集将在奥运结束后推出,敬请关注!

    qrcode.jpg

    相关文章

      网友评论

          本文标题:【R图秀-6】图说里约奥运(二)

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