R语言可视化:使用ggplot2绘制人口金字塔

  人口金字塔是进行人口数据可视化时常用的一种统计图形,可以形象地描述人口年龄和性别的分布情况。最近工作上经常处理人口数据,于是试着使用ggplot2绘制了一下。在这里记录一下,顺便也熟悉一下ggplot2的用法。

  上图所示的人口金字塔是根据我国2010年人口普查的相关数据进行绘制的,绘制过程主要分为以下三部分,(1)数据爬取,(2)分面设置以及(3)图形绘制。

1、数据爬取

  如下图所示,人口普查的相关数据可以从统计局网站上找到。

  由于网站是frame结构构建的动态网页,我们这里使用RSelenium包进行了爬取。这里值得注意的是,frame的切换需要逐层进行,我们这里使用switchToFrame、goBack和goForward函数实现了不同frame之间的切换。其中使用RSelenium包进行爬虫需安装java和Selenium,可参考R语言爬取动态网页:使用RSelenium包和Rwebdriver包的前期准备

  爬虫相关程序如下:

library(RSelenium)
library(rvest)
## 打开浏览器
remDr <- remoteDriver(browserName ="chrome")
remDr$open() 
## 打开网页
url <- 'http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/indexch.htm'
remDr$navigate(url)
## 切换frame链接到数据页面
remDr$switchToFrame(1)
xpath <- '//tbody/tr[3]/th/ul/ul[1]/ul[3]/li[1]/a'
nextBtn <- remDr$
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值