全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5114 6
2012-10-29
前段时间在ted上看到瑞典统计学家讲述亚洲崛起,使用了一个统计动画,做出中国的gdp时间序列散点图,用人口总数做权重。当时想那位老兄应该不是用powerpoint做的。因为ppt不能统计数据,后来发现谢益辉做了一个R的包专门做动画,试了试可以。这两天没事想stata是不是也可以。google了一下,有位老兄也的博客可以看看。我试了一下,果然行,只不过**的网络看不了有图比。我把自己做的动画发上来。
详情可以参考:
http://www.animatedgraphs.co.uk/scatter.html


ps:不想发视频文件,所以用了winmpg转成gif,但是用的是未破解的版本,所以画面里一直有一行要人注册的字样。
貌似gif显示的很慢,先发几张png。
g533.png g73.png g19.png g0.png


stata_hans.gif


做法:
其实做法不必说,上面的网页里都有stata的dofile,但是R的code我点击却链接不上。
要注意的一点是,stata和R要输出动画,都是以mpeg格式输出的。因此
基本原理就是:
用stata 和R, 先做一个空图,R是做一个完全空的,往上面不断添加点和线,而stata 则是先做一个空图,接着两个软件都开始
做一个循环,R是不断往上添加点线,而stata则是不断的做出一个个图形,比如,如果这个动画包含1000个数据,有1000个变化,那么stata就会做1000个png图片(我做这个图,用了接近20分钟吧,中间stata不断的蹦出来图形,我干脆打开其他东西,让他自己去做。后来忽然想到最后路径别设错了,设错了就又得重新让他再做。还好,福大命大,路径没设错。)

还有一点:stata 和R 产生动画的过程,都是把这些图片合成为mpeg, 需要下载一个专门的mpeg生成软件,这这个网页里有链接
http://www.animatedgraphs.co.uk/ffmpeg.html
需要注意的是,这个软件是绿色的,解压放到电脑里就行,但是建议按照那位老兄的建议,放到c:\programe files\目录下,因为他的dofile最后有一句是     winexec "C:/Program Files/ffmpeg/bin/ffmpeg.exe" ///
如果你把ffmpeg放到其他目录里,就得该这一句。当时我做的时候,忽然想起我的ffmpeg这个目录不是这个,图都做了好几分钟了。所以建议大家把这个ffmpeg还是放到上面的目录里吧。
所有图形都做完,就是ffmpeg工作了,stata可以休息了,电脑会出现蓝色的屏幕的dos窗口,用不了半分钟,就生成动画。
其他的也不说了,因为作者的dofile解释还是很详细的。
最后,我觉得用R更快,因为它不需要做出1000张图,另外也可以不用ffmpeg,直接使用谢益辉的包,可以很方便的生成各种视频格式。
祝大家玩得开心!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-10-29 21:44:03
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-29 22:29:17
这个很棒,从从这图形演变来看,很明显,红色圈圈随著时间,越往右上方移动。
篮色也是有点往右上方移动,但红色圈圈比起蓝色圈圈,移动幅度更大,
红色又代表著亚洲地区的国家群。  所以亚洲有每人GDP还有平均馀命越来越高的现象。【有钱+活地久】

这个应当可以结合先前蓝色版主介绍的wbopendata,
如此一来,可以表达 "全球死亡率" 【这个变量您可以自行选择,只要是World Bank公开的资料】的动态变化情况。

再次感谢楼主的分享,个人受益匪浅。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-29 23:18:26
这是2012 UK Stata Users Group meeting(http://stata.com/meeting/uk12/abstracts/)中的一个报告“Producing animated graphs from Stata without having to learn any specialized software”。
点击http://stata.com/meeting/uk12/abstracts/materials/uk12_grant.pptx,可先下载作者Robert Grant的ppt看看。

事实上,大家可以RSS订阅Stata Users Group meeting的信息(http://stata.com/meeting/),并多加关注。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-30 21:30:15
h3327156 发表于 2012-10-29 22:29
这个很棒,从从这图形演变来看,很明显,红色圈圈随著时间,越往右上方移动。
篮色也是有点往右上方移动, ...
多谢建议,我最近也在考虑,world bank 的资料很不错。如果把生育率,死亡率,和老龄化结合起来,我想会更好。前段时间看到一份数据描述自公元元年的人口,很不错,可以描述全世界的人口发展,可惜只有一个指标。如果能在多加如一些其他指标,就好了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-3 22:54:26
今天周六没什么事,又拿出来研究了一下,发现其实没有帖子中说的简单。现在把那位老兄做动画的do文件思路答题说一下,先说一下总体感觉。stata做这个动画必须调用ffmpeg程序,这是最大的弊端,这个程序要生成动画好像必须设置帧数,这位hans,不知是不是起名,反正他的最后生成动画文件有hans,姑且称之。这位hans老兄确实费了不少力气。ffmpeg应该是不能控制动画时,图片显示的时间的。我在网上查了也试了,都没有达到理想的效果,如果只做50-11年的那么只有61年图片,不到5秒钟就显示完了。这样的动画一闪而过,几乎不能够给人任何印象。因此我们要做更多的动画,把61张图片中间的部分补齐。
整个do文件的前半部分是处理数据,可以忽略。真正作图是在capt program部分开始。两个for循环,第一个for循环只做61张图,但是这是不够的,于是又第二个for循环,利用两个相邻年份之间的gdp和lifee进行差值,用插值做出两年间的间隔图片。补齐两年间的动画间隔。这样动画看起来又连续感。本来是61年的图片,认为拉长到61*12,700多张。中间间隔动画是利用gdpi和lifei这两个数据做的。最后调用ffmpeg,我试过,如果图片太少,真的很难看。也难为这位老兄了。不知道R有没有这样的问题。感觉好像中间加一个interval就可以解决问题。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群