<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>刘思喆 @ 贝吉塔行星 &#187; R 语言</title>
	<atom:link href="http://www.bjt.name/category/r/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bjt.name</link>
	<description>R 语言，数据挖掘，数据可视化</description>
	<lastBuildDate>Wed, 30 Nov 2011 15:43:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>那只奔跑的马</title>
		<link>http://www.bjt.name/2011/11/running-horse-movie/</link>
		<comments>http://www.bjt.name/2011/11/running-horse-movie/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 15:43:30 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[杂七杂八]]></category>
		<category><![CDATA[Edward Muybridge]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[电影]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10720</guid>
		<description><![CDATA[一篇放在草稿箱里一年多的博文。 话说到，去年在上海财经大学讲《R与统计图形》时，提到了Edward Muybridge (1830-1904)的赛马动画。在准备材料的时候，我也比较八卦的翻了翻关于赛马动画的历史，结果发现：这幅图型不但是统计动画的鼻祖，同样是现代电影的先驱。 从 Edward Muybride 拍摄赛马动画后，美国的电影产业开始高速的发展，从此加利福尼亚州顺理成章地成为人类电影发展上的重镇，加州的好莱坞产生了大量的电影技术的创新，好莱坞电影也成为美国文化的主要代表之一。 电影、动画的原理，我就不八卦了，一般理科生大概都有些了解。关于这个赛马动画的产生，很有意思： 1872年，前美国加州州长 Leland Stanford（也是斯坦福大学的创立者）是一个狂热的赛马爱好者，为了证明马在奔跑的时候会有一刻所有的蹄子同时悬空，和人打赌，赌金非常高，达到了$25,000（估计折合到现在应该有几百万美元吧）。而在那个年代很难用肉眼确定马在奔跑时的状态（可以想象一下为什么“马踏飞燕”是那个样子？）于是Stanford找到并雇佣Muybridge这个摄影家帮他解决这个问题。 Muybridge 本来在 1872 年的时候已经接受了 Stanford 的邀请，为 Stanford 提供那旷世赌博的摄像证据。但这家伙怀疑自己老婆有个情人（Larkyns），并且冲动的枪杀了Larkyns（和张灵甫有的一拼）。一直到1877年，Muybridge 被判无罪（Stanford提供的辩护资助），才又继续他的奔马实验，于是有了这个： 后来Muybridge根据这些赛马的图片，创作了人类历史上的第一个小电影。那，下面这个动画就是用最上面的几张图合并而成的（因为偷懒用ImageMagick自动切割，所以这个小电影有点晃～～） 当然，还有一个效果更好的： 哈，这便是统计动画～～ 相关文章： R之不务正业-批处理漫画 全民盛宴《阿凡达》]]></description>
			<content:encoded><![CDATA[<p>一篇放在草稿箱里一年多的博文。</p>
<p>话说到，去年在上海财经大学讲<a href="http://cos.name/wp-content/uploads/2010/11/China-R-2010-R-and-Statistical-Graphics.pdf" target="_self">《R与统计图形》</a>时，提到了Edward Muybridge (1830-1904)的赛马动画。在准备材料的时候，我也比较八卦的翻了翻关于赛马动画的历史，结果发现：这幅图型不但是统计动画的鼻祖，同样是现代电影的先驱。</p>
<p>从 Edward Muybride 拍摄赛马动画后，美国的电影产业开始高速的发展，从此加利福尼亚州顺理成章地成为人类电影发展上的重镇，加州的好莱坞产生了大量的电影技术的创新，好莱坞电影也成为美国文化的主要代表之一。</p>
<p>电影、动画的原理，我就不八卦了，一般理科生大概都有些了解。关于这个赛马动画的产生，很有意思：</p>
<p>1872年，前美国加州州长 <a href="http://en.wikipedia.org/wiki/Leland_Stanford">Leland Stanford</a>（也是斯坦福大学的创立者）是一个狂热的赛马爱好者，为了证明马在奔跑的时候会有一刻所有的蹄子同时悬空，和人打赌，赌金非常高，达到了$25,000（估计折合到现在应该有几百万美元吧）。而在那个年代很难用肉眼确定马在奔跑时的状态（可以想象一下为什么“马踏飞燕”是那个样子？）于是Stanford找到并雇佣Muybridge这个摄影家帮他解决这个问题。</p>
<p>Muybridge 本来在 1872 年的时候已经接受了 Stanford 的邀请，为 Stanford 提供那旷世赌博的摄像证据。但这家伙怀疑自己老婆有个情人（Larkyns），并且冲动的枪杀了Larkyns（和张灵甫有的一拼）。一直到1877年，Muybridge 被判无罪（Stanford提供的辩护资助），才又继续他的奔马实验，于是有了这个：</p>
<p style="text-align: center;"><a href="http://www.bjt.name/wp-content/uploads/2010/12/horse.jpg"><img class="aligncenter" title=" Muybridge" src="http://www.bjt.name/wp-content/uploads/2010/12/horse.jpg" alt="" width="635" height="391" /></a></p>
<p>后来Muybridge根据这些赛马的图片，创作了人类历史上的第一个小电影。那，下面这个动画就是用最上面的几张图合并而成的（因为偷懒用<a href="http://www.imagemagick.technocozy.com/" target="_blank">ImageMagick</a>自动切割，所以这个小电影有点晃～～）</p>
<p><a href="http://www.bjt.name/wp-content/uploads/2010/12/horse_movie1.gif"><img class="aligncenter size-full wp-image-10723" title="horse_movie" src="http://www.bjt.name/wp-content/uploads/2010/12/horse_movie1.gif" alt="" width="157" height="100" /></a></p>
<p>当然，还有一个效果更好的：</p>
<p><a href="http://www.bjt.name/wp-content/uploads/2011/11/Muybridge_race_horse_animated.gif"><img class="aligncenter size-full wp-image-10889" title="Muybridge_race_horse_animated" src="http://www.bjt.name/wp-content/uploads/2011/11/Muybridge_race_horse_animated.gif" alt="" width="300" height="200" /></a></p>
<p>哈，这便是统计动画～～<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2010/10/r-cartoon-batch/' title='R之不务正业-批处理漫画'>R之不务正业-批处理漫画</a></li>
<li><a href='http://www.bjt.name/2010/01/avatar/' title='全民盛宴《阿凡达》'>全民盛宴《阿凡达》</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2011/11/running-horse-movie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>数据挖掘之R与SQL</title>
		<link>http://www.bjt.name/2011/08/r-and-sql-datamining/</link>
		<comments>http://www.bjt.name/2011/08/r-and-sql-datamining/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 17:29:15 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[R 语言]]></category>
		<category><![CDATA[数据挖掘]]></category>
		<category><![CDATA[datamining]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10874</guid>
		<description><![CDATA[今天看到老同学@JulieJulieJulieJulie 的浪漫求婚，真的很浪漫、很唯美、很感动。正如评论说的，我们又相信爱情了！于是，小兴奋，睡不着，爬起来补一篇文章。 ## 正文开始 最近在数据挖掘专业网站 KDnuggets 上刊出了2011年度关于数据挖掘/分析语言流行度的调查，不出意料R、SQL、Python果然排在了前三位。当然有看官说了，参与调查的样本数量太少，而且以登录KDnuggets网站的用户为主，样本的信息显然是有偏的。实话说，我也对KDnuggets网站的Poll持保留态度，但它的结果毕竟代表了某一类人群的使用偏好，尤其是在语言角度。 我们看排名前5位的语言： R：世界范围内的标准统计语言，以快速更新的算法，灵活的编程，广泛的扩展，绚丽的图形著称，遵循GPL协议的开源软件 SQL：大部分企业使用的，数据仓库、集市的通用查询语言，在大型数据应用上有极大的优势，同时也是数据分析/挖掘的基础 Python：传说中的Google的三大开发语言，适用于粘合一些复杂应用，我这里工作暂时没有涉及过 Java：太多的应用都基于Java的，不然Oracle也不会花上74亿美元收购SUN了 SAS：曾经的数据分析领域老大，当然现在市场份额依旧非常高。但SAS昂贵的使用费用迫使更多的分析工作者转到了开源领域，比如R 后四种语言同R语言还都有一些关系，闲扯起来还真是没完没了，这里就不再赘述，各位可以在搜索引擎上搜索R+XXX。如果我们将范围限制在数据挖掘这个主题，R同SQL的关系则变得非常非常紧密。 众所周知，R的强项在于灵活的算法，以及开发速度，但其所有的计算都是在内存中进行，一旦数据量达到了内存上限，基本上就是叫天天不灵，叫地地不应了。所以在使用R做数据挖掘时，就必须考虑使用其他的数据工具弥补R在这方面的劣势。尤其是在商业应用上，不能搭建R环境的条件下，SQL语言是提供挖掘结果的不二选择。 支持SQL的商用数据库比如Oracle、DB2性能优异，但对系统的占用非常厉害，假如本地装了Oracle，又开了点其他应用，2G的内存很快就会吃到1.5G甚至以上，再想用R做分析那只能用“捉襟见肘”这个词来形容了。当然如果在办公条件下有相应的服务器环境最好，在某些应用环境下，甚至可以通过本地多开R进程来达到并行计算的目的。 或者本地分析比较多，但数据量又时常上到百兆，虽然R也能够处理，但依然建议将数据移植到本地构建的轻量数据库环境，比如MySQL环境。从我的经验上看，虽然MySQL对比Oracle、DB2来说小巧很多，但在同R语言配合的本地应用上，性能更加有保证。 有了支持SQL的数据库环境，就要聊一聊R语言到底和SQL有什么关系： 各大数据库厂商已经开发了相关的支持R语言的数据挖掘套件，比如Oracle的RODM，Teradata的 teradataR等。 R本身就可以通过扩展包来对数据库执行SQL，这时你可以把R语言作为调度环境。R的计算过程结果可以直接作为参数传递到数据库中，并将相应的结果返回，供R环境使用。 通过sqldf包，在R内部使用标准SQL对数据进行预处理，包括group by，order by，join，where等操作。 当然R最重要的用途是将数据挖掘的结果转义为标准SQL语言，利用数据库来实现挖掘结果。当然有人说了，不是有pmml可以将模型嵌入到数据库么？！扯！到现在我也没见pmml成为应用标准，老老实实的将模型结果转义到SQL才是王道。比如用于概率预测的Logistic回归或者分类模型的Tree-based Models，这些模型的转义工作都不难，这样最终的工程实施都脱离了R环境，更具通用性，且利用了数据库的高速性能。 说句题外话：不知道哪位看官见过70万字符长度的庞大SQL语句——是的，你没看错，70w，R转义的，可以执行，对于数据库而言不过是半分钟的事情。 相关文章： Oracle数据库开始支持R语言 KDnuggets 关于数据挖掘软件的调查 2006年至今国内货币供应量的Motion Chart]]></description>
			<content:encoded><![CDATA[<p>今天看到老同学<a href="http://weibo.com/n/JulieJulieJulieJulie" target="_blank">@JulieJulieJulieJulie</a> 的<a href="http://www.tudou.com/programs/view/g52FYAg63Kg/" target="_blank">浪漫求婚</a>，真的很浪漫、很唯美、很感动。正如评论说的，我们又相信爱情了！于是，小兴奋，睡不着，爬起来补一篇文章。</p>
<p>## 正文开始</p>
<p>最近在数据挖掘专业网站 KDnuggets 上刊出了2011年度关于数据挖掘/分析语言流行度的<a href="http://www.kdnuggets.com/2011/08/poll-languages-for-data-mining-analytics.html" target="_blank">调查</a>，不出意料R、SQL、Python果然排在了前三位。当然有看官说了，参与调查的样本数量太少，而且以登录KDnuggets网站的用户为主，样本的信息显然是有偏的。实话说，我也对KDnuggets网站的Poll持保留态度，但它的结果毕竟代表了某一类人群的使用偏好，尤其是在语言角度。</p>
<p><a href="http://www.bjt.name/wp-content/uploads/2011/08/182924.png"><img class="aligncenter" title="data mining survey" src="http://www.bjt.name/wp-content/uploads/2011/08/182924.png" alt="" width="492" height="305" /></a></p>
<p>我们看排名前5位的语言：</p>
<ol>
<li>R：世界范围内的标准统计语言，以快速更新的算法，灵活的编程，广泛的扩展，绚丽的图形著称，遵循GPL协议的开源软件</li>
<li>SQL：大部分企业使用的，数据仓库、集市的通用查询语言，在大型数据应用上有极大的优势，同时也是数据分析/挖掘的基础</li>
<li>Python：传说中的Google的三大开发语言，适用于粘合一些复杂应用，我这里工作暂时没有涉及过</li>
<li>Java：太多的应用都基于Java的，不然Oracle也不会花上74亿美元收购SUN了</li>
<li>SAS：曾经的数据分析领域老大，当然现在市场份额依旧非常高。但SAS昂贵的使用费用迫使更多的分析工作者转到了开源领域，比如R</li>
</ol>
<p>后四种语言同R语言还都有一些关系，闲扯起来还真是没完没了，这里就不再赘述，各位可以在搜索引擎上搜索R+XXX。如果我们将范围限制在数据挖掘这个主题，R同SQL的关系则变得非常非常紧密。</p>
<p>众所周知，R的强项在于灵活的算法，以及开发速度，但其所有的计算都是在内存中进行，一旦数据量达到了内存上限，基本上就是叫天天不灵，叫地地不应了。所以在使用R做数据挖掘时，就必须考虑使用其他的数据工具弥补R在这方面的劣势。尤其是在商业应用上，不能搭建R环境的条件下，SQL语言是提供挖掘结果的不二选择。</p>
<p>支持SQL的商用数据库比如Oracle、DB2性能优异，但对系统的占用非常厉害，假如本地装了Oracle，又开了点其他应用，2G的内存很快就会吃到1.5G甚至以上，再想用R做分析那只能用“捉襟见肘”这个词来形容了。当然如果在办公条件下有相应的服务器环境最好，在某些应用环境下，甚至可以通过本地多开R进程来达到并行计算的目的。</p>
<p>或者本地分析比较多，但数据量又时常上到百兆，虽然R也能够处理，但依然建议将数据移植到本地构建的轻量数据库环境，比如MySQL环境。从我的经验上看，虽然MySQL对比Oracle、DB2来说小巧很多，但在同R语言配合的本地应用上，性能更加有保证。</p>
<p>有了支持SQL的数据库环境，就要聊一聊R语言到底和SQL有什么关系：</p>
<ul>
<li>各大数据库厂商已经开发了相关的支持R语言的数据挖掘套件，比如Oracle的<a href="http://ftp.ctex.org/mirrors/CRAN/web/packages/RODM/index.html">RODM</a>，Teradata的 <a id="download-6865-7769-0" href="https://downloads.teradata.com/download/applications/teradata-r/1.0">teradataR</a>等。</li>
<li>R本身就可以通过扩展包来对数据库执行SQL，这时你可以把R语言作为调度环境。R的计算过程结果可以直接作为参数传递到数据库中，并将相应的结果返回，供R环境使用。</li>
<li>通过sqldf包，在R内部使用标准SQL对数据进行预处理，包括group by，order by，join，where等操作。</li>
<li>当然R最重要的用途是将数据挖掘的结果转义为标准SQL语言，利用数据库来实现挖掘结果。当然有人说了，不是有pmml可以将模型嵌入到数据库么？！扯！到现在我也没见pmml成为应用标准，老老实实的将模型结果转义到SQL才是王道。比如用于概率预测的Logistic回归或者分类模型的Tree-based Models，这些模型的转义工作都不难，这样最终的工程实施都脱离了R环境，更具通用性，且利用了数据库的高速性能。</li>
</ul>
<p>说句题外话：不知道哪位看官见过70万字符长度的庞大SQL语句——是的，你没看错，70w，R转义的，可以执行，对于数据库而言不过是半分钟的事情。<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2010/06/oracle-data-mining-r/' title='Oracle数据库开始支持R语言'>Oracle数据库开始支持R语言</a></li>
<li><a href='http://www.bjt.name/2009/05/kdnuggets-datamining-survey/' title='KDnuggets 关于数据挖掘软件的调查'>KDnuggets 关于数据挖掘软件的调查</a></li>
<li><a href='http://www.bjt.name/2011/07/money-supply-motion-char/' title='2006年至今国内货币供应量的Motion Chart'>2006年至今国内货币供应量的Motion Chart</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2011/08/r-and-sql-datamining/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>2006年至今国内货币供应量的Motion Chart</title>
		<link>http://www.bjt.name/2011/07/money-supply-motion-char/</link>
		<comments>http://www.bjt.name/2011/07/money-supply-motion-char/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 10:48:12 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[图型展示]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[R 语言]]></category>
		<category><![CDATA[可视化]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10853</guid>
		<description><![CDATA[在2008年，第一届中国R语言会议上，来自于艾瑞咨询的张翔为大家展示了一组极具震撼力的泡泡图，而这段视频便是Hans Rosling 在2006年 TED 上的演讲，讲述的是1956年-2006年之间各国间的经济发展变化。虽然个人认为泡泡图的实现的技术并没有太多技术含量，但惊讶于Hans Rosling大智若愚的演讲能力，甚至再看完五六遍之后，仍然还会被其感染。 再后来， Hans Rosling将这款数据展示产品卖给了Google，而Google又将其整合到Visualisation API 里，于是我们可以调用Google的API来使用这些有趣的图形展示功能。 更令人鼓舞的是：前不久，Markus Gesmann, Castillo两位老大，写了googleVis这个R扩展包，将Hans Rosling的泡泡图同R语言完美的整合在了一起:) 下面就是在R语言里，通过googleVis包，对我国2006年至今的货币供应量（M0、M1、M2）Motion Chart（将横坐标设置为time以后，点击Play） 碎碎念：从泡泡的跳动上看，央行投放的货币供应量（亿元）在2009-2011年间，增加的最为剧烈，当然这个时间段也是房价近十年间增长最为迅速的两年。而现在呢，房市开始限购，国内房地产市场已经撑不住超发的货币，因此广泛的通货膨胀开始蔓延。引用郎咸平的几段话： 我们近几年发了76.5万亿的货币,是GDP的2.5倍,而美国的货币量除上GDP只是0.6,只有我们的四分之一 唯一的解释只能是货币的购买力在下降,这就是经济学里的通货膨胀 最后，关于googleVis包的使用请移步至这里。 相关文章： 用R实现马赛克拼图 R语言的代码规范 数据挖掘之R与SQL]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bjt.name/wp-content/uploads/2011/07/motion-chart.png"><br />
</a>在2008年，第一届中国R语言会议上，来自于艾瑞咨询的张翔为大家展示了一组极具震撼力的泡泡图，而这段视频便是Hans Rosling 在2006年 <a href="http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html" rel="nofollow">TED</a> 上的演讲，讲述的是1956年-2006年之间各国间的经济发展变化。虽然个人认为泡泡图的实现的技术并没有太多技术含量，但惊讶于Hans Rosling大智若愚的演讲能力，甚至再看完五六遍之后，仍然还会被其感染。</p>
<p>再后来， Hans Rosling将这款数据展示产品卖给了Google，而Google又将其整合到<a href="http://code.google.com/apis/visualization/documentation/gallery.html" rel="nofollow">Visualisation API</a> 里，于是我们可以调用Google的API来使用这些有趣的图形展示功能。</p>
<p>更令人鼓舞的是：前不久，Markus Gesmann, Castillo两位老大，写了<a href="http://cran.r-project.org/web/packages/googleVis/" target="_blank">googleVis</a>这个R扩展包，将Hans Rosling的泡泡图同R语言完美的整合在了一起:)</p>
<p>下面就是在R语言里，通过<a href="http://cran.r-project.org/web/packages/googleVis/" target="_blank">googleVis</a>包，对我国2006年至今的货币供应量（M0、M1、M2）Motion Chart（将横坐标设置为time以后，点击Play）</p>
<!-- MotionChart generated in R 2.13.1 by googleVis 0.2.6 package -->
<!-- Sun Jul 17 17:21:01 2011 -->


<!-- jsHeader -->
<script type="text/javascript" src="http://www.google.com/jsapi">
</script>
<script type="text/javascript">
 
// jsData 
function gvisDataMotionChartIDcf1100d ()
{
  var data = new google.visualization.DataTable();
  var datajson =
[
 [
 "M2",
new Date(2011,5,1),
7.808e+05 
],
[
 "M2",
new Date(2011,4,1),
7.634e+05 
],
[
 "M2",
new Date(2011,3,1),
7.573e+05 
],
[
 "M2",
new Date(2011,2,1),
7.581e+05 
],
[
 "M2",
new Date(2011,1,1),
7.361e+05 
],
[
 "M2",
new Date(2011,0,1),
7.356e+05 
],
[
 "M2",
new Date(2010,11,1),
7.258e+05 
],
[
 "M2",
new Date(2010,10,1),
7.103e+05 
],
[
 "M2",
new Date(2010,9,1),
6.998e+05 
],
[
 "M2",
new Date(2010,8,1),
6.964e+05 
],
[
 "M2",
new Date(2010,7,1),
6.875e+05 
],
[
 "M2",
new Date(2010,6,1),
6.741e+05 
],
[
 "M2",
new Date(2010,5,1),
6.739e+05 
],
[
 "M2",
new Date(2010,4,1),
6.634e+05 
],
[
 "M2",
new Date(2010,3,1),
6.566e+05 
],
[
 "M2",
new Date(2010,2,1),
6.5e+05 
],
[
 "M2",
new Date(2010,1,1),
6.36e+05 
],
[
 "M2",
new Date(2010,0,1),
6.251e+05 
],
[
 "M2",
new Date(2009,11,1),
6.062e+05 
],
[
 "M2",
new Date(2009,10,1),
5.946e+05 
],
[
 "M2",
new Date(2009,9,1),
5.862e+05 
],
[
 "M2",
new Date(2009,8,1),
5.854e+05 
],
[
 "M2",
new Date(2009,7,1),
5.767e+05 
],
[
 "M2",
new Date(2009,6,1),
5.731e+05 
],
[
 "M2",
new Date(2009,5,1),
5.6892e+05 
],
[
 "M2",
new Date(2009,4,1),
5.4824e+05 
],
[
 "M2",
new Date(2009,3,1),
5.405e+05 
],
[
 "M2",
new Date(2009,2,1),
5.306e+05 
],
[
 "M2",
new Date(2009,1,1),
5.071e+05 
],
[
 "M2",
new Date(2009,0,1),
4.9614e+05 
],
[
 "M2",
new Date(2008,11,1),
4.7517e+05 
],
[
 "M2",
new Date(2008,10,1),
4.5864e+05 
],
[
 "M2",
new Date(2008,9,1),
4.5313e+05 
],
[
 "M2",
new Date(2008,8,1),
4.529e+05 
],
[
 "M2",
new Date(2008,7,1),
4.4885e+05 
],
[
 "M2",
new Date(2008,6,1),
4.4636e+05 
],
[
 "M2",
new Date(2008,5,1),
4.4314e+05 
],
[
 "M2",
new Date(2008,4,1),
4.3622e+05 
],
[
 "M2",
new Date(2008,3,1),
4.2931e+05 
],
[
 "M2",
new Date(2008,2,1),
4.2305e+05 
],
[
 "M2",
new Date(2008,1,1),
4.2104e+05 
],
[
 "M2",
new Date(2008,0,1),
4.1785e+05 
],
[
 "M2",
new Date(2007,11,1),
4.034e+05 
],
[
 "M2",
new Date(2007,10,1),
3.9976e+05 
],
[
 "M2",
new Date(2007,9,1),
3.942e+05 
],
[
 "M2",
new Date(2007,8,1),
3.931e+05 
],
[
 "M2",
new Date(2007,7,1),
3.8721e+05 
],
[
 "M2",
new Date(2007,6,1),
3.8388e+05 
],
[
 "M2",
new Date(2007,5,1),
3.7783e+05 
],
[
 "M2",
new Date(2007,4,1),
3.6972e+05 
],
[
 "M2",
new Date(2007,3,1),
3.6733e+05 
],
[
 "M2",
new Date(2007,2,1),
3.641e+05 
],
[
 "M2",
new Date(2007,1,1),
3.5866e+05 
],
[
 "M2",
new Date(2007,0,1),
3.515e+05 
],
[
 "M2",
new Date(2006,11,1),
3.4558e+05 
],
[
 "M2",
new Date(2006,10,1),
3.375e+05 
],
[
 "M2",
new Date(2006,9,1),
3.3275e+05 
],
[
 "M2",
new Date(2006,8,1),
3.3187e+05 
],
[
 "M2",
new Date(2006,7,1),
3.2789e+05 
],
[
 "M2",
new Date(2006,6,1),
3.2401e+05 
],
[
 "M2",
new Date(2006,5,1),
3.2276e+05 
],
[
 "M2",
new Date(2006,4,1),
3.1671e+05 
],
[
 "M2",
new Date(2006,3,1),
3.137e+05 
],
[
 "M2",
new Date(2006,2,1),
3.1049e+05 
],
[
 "M2",
new Date(2006,1,1),
3.0452e+05 
],
[
 "M2",
new Date(2006,0,1),
3.0357e+05 
],
[
 "M1",
new Date(2011,5,1),
2.747e+05 
],
[
 "M1",
new Date(2011,4,1),
2.693e+05 
],
[
 "M1",
new Date(2011,3,1),
2.668e+05 
],
[
 "M1",
new Date(2011,2,1),
2.663e+05 
],
[
 "M1",
new Date(2011,1,1),
2.591e+05 
],
[
 "M1",
new Date(2011,0,1),
2.631e+05 
],
[
 "M1",
new Date(2010,11,1),
2.666e+05 
],
[
 "M1",
new Date(2010,10,1),
2.594e+05 
],
[
 "M1",
new Date(2010,9,1),
2.533e+05 
],
[
 "M1",
new Date(2010,8,1),
2.438e+05 
],
[
 "M1",
new Date(2010,7,1),
2.443e+05 
],
[
 "M1",
new Date(2010,6,1),
2.407e+05 
],
[
 "M1",
new Date(2010,5,1),
2.406e+05 
],
[
 "M1",
new Date(2010,4,1),
2.365e+05 
],
[
 "M1",
new Date(2010,3,1),
2.339e+05 
],
[
 "M1",
new Date(2010,2,1),
2.294e+05 
],
[
 "M1",
new Date(2010,1,1),
2.243e+05 
],
[
 "M1",
new Date(2010,0,1),
2.296e+05 
],
[
 "M1",
new Date(2009,11,1),
2.2e+05 
],
[
 "M1",
new Date(2009,10,1),
2.125e+05 
],
[
 "M1",
new Date(2009,9,1),
2.075e+05 
],
[
 "M1",
new Date(2009,8,1),
2.017e+05 
],
[
 "M1",
new Date(2009,7,1),
2.004e+05 
],
[
 "M1",
new Date(2009,6,1),
1.959e+05 
],
[
 "M1",
new Date(2009,5,1),
1.9314e+05 
],
[
 "M1",
new Date(2009,4,1),
1.82e+05 
],
[
 "M1",
new Date(2009,3,1),
1.7821e+05 
],
[
 "M1",
new Date(2009,2,1),
1.765e+05 
],
[
 "M1",
new Date(2009,1,1),
1.665e+05 
],
[
 "M1",
new Date(2009,0,1),
1.6521e+05 
],
[
 "M1",
new Date(2008,11,1),
1.6622e+05 
],
[
 "M1",
new Date(2008,10,1),
1.5783e+05 
],
[
 "M1",
new Date(2008,9,1),
1.5719e+05 
],
[
 "M1",
new Date(2008,8,1),
1.5575e+05 
],
[
 "M1",
new Date(2008,7,1),
1.5689e+05 
],
[
 "M1",
new Date(2008,6,1),
1.5499e+05 
],
[
 "M1",
new Date(2008,5,1),
1.5482e+05 
],
[
 "M1",
new Date(2008,4,1),
1.5334e+05 
],
[
 "M1",
new Date(2008,3,1),
1.5169e+05 
],
[
 "M1",
new Date(2008,2,1),
1.5087e+05 
],
[
 "M1",
new Date(2008,1,1),
1.5018e+05 
],
[
 "M1",
new Date(2008,0,1),
1.5487e+05 
],
[
 "M1",
new Date(2007,11,1),
1.5252e+05 
],
[
 "M1",
new Date(2007,10,1),
1.4801e+05 
],
[
 "M1",
new Date(2007,9,1),
1.4465e+05 
],
[
 "M1",
new Date(2007,8,1),
1.4259e+05 
],
[
 "M1",
new Date(2007,7,1),
1.4099e+05 
],
[
 "M1",
new Date(2007,6,1),
1.3624e+05 
],
[
 "M1",
new Date(2007,5,1),
1.3585e+05 
],
[
 "M1",
new Date(2007,4,1),
1.3028e+05 
],
[
 "M1",
new Date(2007,3,1),
1.2768e+05 
],
[
 "M1",
new Date(2007,2,1),
1.2788e+05 
],
[
 "M1",
new Date(2007,1,1),
1.2626e+05 
],
[
 "M1",
new Date(2007,0,1),
1.2848e+05 
],
[
 "M1",
new Date(2006,11,1),
1.2603e+05 
],
[
 "M1",
new Date(2006,10,1),
1.2164e+05 
],
[
 "M1",
new Date(2006,9,1),
1.1836e+05 
],
[
 "M1",
new Date(2006,8,1),
1.1681e+05 
],
[
 "M1",
new Date(2006,7,1),
1.1485e+05 
],
[
 "M1",
new Date(2006,6,1),
1.1265e+05 
],
[
 "M1",
new Date(2006,5,1),
1.1234e+05 
],
[
 "M1",
new Date(2006,4,1),
1.0922e+05 
],
[
 "M1",
new Date(2006,3,1),
1.0639e+05 
],
[
 "M1",
new Date(2006,2,1),
1.0674e+05 
],
[
 "M1",
new Date(2006,1,1),
1.0436e+05 
],
[
 "M1",
new Date(2006,0,1),
1.0725e+05 
],
[
 "M0",
new Date(2011,5,1),
 44500 
],
[
 "M0",
new Date(2011,4,1),
 44600 
],
[
 "M0",
new Date(2011,3,1),
 45500 
],
[
 "M0",
new Date(2011,2,1),
 44800 
],
[
 "M0",
new Date(2011,1,1),
 47300 
],
[
 "M0",
new Date(2011,0,1),
 58100 
],
[
 "M0",
new Date(2010,11,1),
 44600 
],
[
 "M0",
new Date(2010,10,1),
 42300 
],
[
 "M0",
new Date(2010,9,1),
 41600 
],
[
 "M0",
new Date(2010,8,1),
 41900 
],
[
 "M0",
new Date(2010,7,1),
 39900 
],
[
 "M0",
new Date(2010,6,1),
 39500 
],
[
 "M0",
new Date(2010,5,1),
 38900 
],
[
 "M0",
new Date(2010,4,1),
 38700 
],
[
 "M0",
new Date(2010,3,1),
 39700 
],
[
 "M0",
new Date(2010,2,1),
 39100 
],
[
 "M0",
new Date(2010,1,1),
 42900 
],
[
 "M0",
new Date(2010,0,1),
 40800 
],
[
 "M0",
new Date(2009,11,1),
 38200 
],
[
 "M0",
new Date(2009,10,1),
 36300 
],
[
 "M0",
new Date(2009,9,1),
 35700 
],
[
 "M0",
new Date(2009,8,1),
 36800 
],
[
 "M0",
new Date(2009,7,1),
 34400 
],
[
 "M0",
new Date(2009,6,1),
 34200 
],
[
 "M0",
new Date(2009,5,1),
 33641 
],
[
 "M0",
new Date(2009,4,1),
 33600 
],
[
 "M0",
new Date(2009,3,1),
 34257 
],
[
 "M0",
new Date(2009,2,1),
 33700 
],
[
 "M0",
new Date(2009,1,1),
 35100 
],
[
 "M0",
new Date(2009,0,1),
 41082 
],
[
 "M0",
new Date(2008,11,1),
 34219 
],
[
 "M0",
new Date(2008,10,1),
 31607 
],
[
 "M0",
new Date(2008,9,1),
 31318 
],
[
 "M0",
new Date(2008,8,1),
 31725 
],
[
 "M0",
new Date(2008,7,1),
 30852 
],
[
 "M0",
new Date(2008,6,1),
 30687 
],
[
 "M0",
new Date(2008,5,1),
 30181 
],
[
 "M0",
new Date(2008,4,1),
 30169 
],
[
 "M0",
new Date(2008,3,1),
 30790 
],
[
 "M0",
new Date(2008,2,1),
 30433 
],
[
 "M0",
new Date(2008,1,1),
 32454 
],
[
 "M0",
new Date(2008,0,1),
 36673 
],
[
 "M0",
new Date(2007,11,1),
 30334 
],
[
 "M0",
new Date(2007,10,1),
 28988 
],
[
 "M0",
new Date(2007,9,1),
 28318 
],
[
 "M0",
new Date(2007,8,1),
 29031 
],
[
 "M0",
new Date(2007,7,1),
 27822 
],
[
 "M0",
new Date(2007,6,1),
 27326 
],
[
 "M0",
new Date(2007,5,1),
 26881 
],
[
 "M0",
new Date(2007,4,1),
 26728 
],
[
 "M0",
new Date(2007,3,1),
 27814 
],
[
 "M0",
new Date(2007,2,1),
 27388 
],
[
 "M0",
new Date(2007,1,1),
 30628 
],
[
 "M0",
new Date(2007,0,1),
 27949 
],
[
 "M0",
new Date(2006,11,1),
 27073 
],
[
 "M0",
new Date(2006,10,1),
 25527 
],
[
 "M0",
new Date(2006,9,1),
 24964 
],
[
 "M0",
new Date(2006,8,1),
 25687 
],
[
 "M0",
new Date(2006,7,1),
 24185 
],
[
 "M0",
new Date(2006,6,1),
 23753 
],
[
 "M0",
new Date(2006,5,1),
 23469 
],
[
 "M0",
new Date(2006,4,1),
 23465 
],
[
 "M0",
new Date(2006,3,1),
 24156 
],
[
 "M0",
new Date(2006,2,1),
 23472 
],
[
 "M0",
new Date(2006,1,1),
 24482 
],
[
 "M0",
new Date(2006,0,1),
 29310 
] 
];
data.addColumn('string','Money.Supply');
data.addColumn('date','date');
data.addColumn('number','Total.Amount');
data.addRows(datajson);
return(data);
}
 
// jsDrawChart
function drawChartMotionChartIDcf1100d() {
  var data = gvisDataMotionChartIDcf1100d()
  var chart = new google.visualization.MotionChart(
   document.getElementById('MotionChartIDcf1100d')
  );
  var options ={};
options["width"] =    700;
options["height"] =    500;
  chart.draw(data,options);
}
 
// jsDisplayChart 
function displayChartMotionChartIDcf1100d()
{
  google.load("visualization", "1", { packages:["motionchart"] }); 
  google.setOnLoadCallback(drawChartMotionChartIDcf1100d);
}
 
// jsChart 
displayChartMotionChartIDcf1100d()
 
<!-- jsFooter -->  
//-->
</script>
 
<!-- divChart -->
<div id="MotionChartIDcf1100d"
  style="width: 600px; height: 600px;">
</div>
<p>碎碎念：从泡泡的跳动上看，央行投放的货币供应量（亿元）在2009-2011年间，增加的最为剧烈，当然这个时间段也是房价近十年间增长最为迅速的两年。而现在呢，房市开始限购，国内房地产市场已经撑不住超发的货币，因此广泛的通货膨胀开始蔓延。引用郎咸平的几段话：</p>
<p style="padding-left: 30px;"><strong>我们近几年发了76.5万亿的货币,是GDP的2.5倍,而美国的货币量除上GDP只是0.6,只有我们的四分之一</strong></p>
<p style="padding-left: 30px;"><strong>唯一的解释只能是货币的购买力在下降,这就是经济学里的通货膨胀</strong></p>
<p>最后，关于<a href="http://cran.r-project.org/web/packages/googleVis/" target="_blank">googleVis</a>包的使用请移步至<a href="http://code.google.com/p/google-motion-charts-with-r/" target="_blank">这里</a>。<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2011/06/mosaic-plot-with-r/' title='用R实现马赛克拼图'>用R实现马赛克拼图</a></li>
<li><a href='http://www.bjt.name/2010/11/google-r-code-style/' title='R语言的代码规范'>R语言的代码规范</a></li>
<li><a href='http://www.bjt.name/2011/08/r-and-sql-datamining/' title='数据挖掘之R与SQL'>数据挖掘之R与SQL</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2011/07/money-supply-motion-char/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

