星期二, 七月 19, 2011

在R语言中实现google-motion-charts

本例希望比较20国集团过去若干年的发展轨迹,用谷歌提供的动态视图API在R中进行绘图。我们从世界银行数据库中选取三个变量,分别反映GDP,CO2排放和期望寿命在2001到2007年之间变化。

首先安装必要的程序包,然后用WDI命令从世界银行数据库中加载数据。
install.packages("googleVis")
library(googleVis)
library(WDI)
DF <- WDI(country=c("CN","RU","BR","ZA","IN",'DE','AU','CA','FR','IT','JP','MX','GB','US','ID','AR','KR','SA','TR'), indicator=c("NY.GDP.MKTP.CD", 'SP.DYN.LE00.IN', 'EN.ATM.CO2E.KT'), start=2000, end=2010
M <- gvisMotionChart(DF, idvar="country", timevar="year")
数据存入变量DF后利用gvisMotionChart函数得到动态图变量,对于该变量我们可以直接用绘图命令plot(M)得到图形。也可以将代码存到文档上,代码可复制到博客中实现动态交互效果

cat(M$html$chart, file="tmp.html")






特别是比较美国与中国的发展可以看出,中国几乎是横着走,为经济发展而排放了大量的CO2,而美国是向上爬,轨迹明显不同。(横轴为CO2排放,纵轴为GDP)
参考:

4 条评论:

  1. 学长你好,我是人大统计研一的学生,最近用R中的googleVis包画动态的气泡图,如果我的数据不是用网上的API,而是自己电脑里的数据,该如何保存最后的动态图呢。。。我用cat(M$html$chart, file="tmp.html") ,打开tmp.html却是空白的,把html的代码放到R html 里读取,也没有结果,弄了半天了还是不得章法,或许哪个地方还需要设置吗?不知道您碰到过这种情况不。

    回复删除
    回复
    1. 在上面这个例子里,可以直接用plot(M)来得到动态图,动态图只能在浏览器中展示。cat的命令生成的html是一些代码,你可以用文本编辑器打开看,它是为了嵌入到自己的网站中的,比如这个博客中的就是。

      删除
    2. 此评论已被作者删除。

      删除
    3. 当年是可以的,现在这个包已经更新多少代了。

      删除