<?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>Keep on Fighting! &#187; 统计图示</title>
	<atom:link href="http://yihui.name/cn/category/r-language/r-graphics/feed/" rel="self" type="application/rss+xml" />
	<link>http://yihui.name/cn</link>
	<description>谢益辉</description>
	<lastBuildDate>Sat, 31 Jul 2010 03:17:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://yihui.name/cn/wp-includes/js/jquery/jquery.js?ver=1.3.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>统计图形和模拟视角下的模型理论解析</title>
		<link>http://yihui.name/cn/2010/07/master-thesis-graphics-and-simulation-in-stat-models/</link>
		<comments>http://yihui.name/cn/2010/07/master-thesis-graphics-and-simulation-in-stat-models/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 06:30:40 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[统计学]]></category>
		<category><![CDATA[统计计算]]></category>
		<category><![CDATA[硕士毕业论文]]></category>
		<category><![CDATA[统计图形]]></category>
		<category><![CDATA[统计模型]]></category>
		<category><![CDATA[统计模拟]]></category>
		<category><![CDATA[统计理论]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=1410</guid>
		<description><![CDATA[前在群众大学给一些客官承诺过我会把我的硕士毕业论文发上来，其实早就在网上了，只不过没吱声而已，用Git同步一下容易，但写几个字介绍一下就花时间了。感兴趣的客官可以去本站作品页面内下载：http://yihui.name/cn/publication/#GSM
这论文呢，自我评价可以给个80分。最大的问题在于没有花时间去整理文章的结构，所以构架上稍微有点散乱（俗称“意识流”）。内容上熟悉我的博客的客官一眼就能看出来，其实都是些博客文章的汇总，只不过用LaTeX让它们变得“人模狗样”一些而已，好在本小子平时也积攒了这些鸡零狗碎的东西，动过自己的脑子。我觉得群众大学的毕业论文，很多都是一个套路：经济/金融数据套一个神奇的模型，直到最后整个世界一片和谐，读者在最后一章都能隐约看到上帝老爷子在朝你挥手。其实也没啥，找工作不容易，地球人也都知道写论文就是忽悠——漫漫人生路上一道工序。
由于本小子是个小人（小小的活人），所以总关心小人关心的事情（俗称“人本主义”）。这论文嘛，窃以为也没什么上下高低之分，说出你怎么想的就可以了，而不要总说“他们”怎么想怎么做。一定要有数学上的创新？一定要有人家看不懂的公式才是好论文？一定要有综述？一定要有长长的参考文献列表才是好论文？一定要板起脸？不能写八卦？不准幽默？……嗨，作茧自缚。几年前看到一篇好文章，颇具恶搞性质，建议各位客官收藏：How to write Consistently Boring Scientific Literature。
言归正传：本文是厌倦八股文和数学理论的产物，从理论角度来说，几乎没什么价值，不过这篇文章是用Sweave写的，完全具有可重复性和100%透明度，对文中结果有怀疑的客官可以自行运行代码；其次，统计模拟和图形的声音在界内太微弱，大家都很忙，有人在忙着推公式，有人在忙着编数据，有人在忙着把公式用到不知道是不是编出来的数据上，本小子跟着瞎掺和了点别的东西，仅此而已。甭管有用没用，敬请拍砖。
－－－－－－－－－－外一篇：坛霸是怎样练成的－－－－－－－－－－
曾经有童鞋称呼在下为“坛霸”，这个……有时候确实有那么点意思，无图无真相（两个多月没怎么回帖了，一鼓作气）：
接下来我会陆续写第三届中国R语言会议、《现代统计图形》书稿和useR! 2010，若时间允许，我考虑一下电视剧《九阴真经》（93版）。
爷还想看：2010/05/23 -- 通知两则：第三届R会议培训及统计人才招聘 (12)2010/05/19 -- 渐近理想国：McNemar检验的两种统计量 (0)2010/04/15 -- 知识与常识：分析大学生挂科因素？ (17)2010/04/14 -- 统计计算与数学推导及逻辑分析 (2)2007/11/13 -- Type III Error（第三类错误） (2)]]></description>
			<content:encoded><![CDATA[<a href="http://yihui.name/cn/2010/07/master-thesis-graphics-and-simulation-in-stat-models/"><span class="dropcap">之</span></a>前在群众大学给一些客官承诺过我会把我的<a title="http://yihui.name/cn/docs/StatGraphics/Graphics-in-Stat-Models.pdf" href="http://yihui.name/cn/docs/StatGraphics/Graphics-in-Stat-Models.pdf">硕士毕业论文</a>发上来，其实早就在网上了，只不过没吱声而已，用Git同步一下容易，但写几个字介绍一下就花时间了。感兴趣的客官可以去本站<a title="http://yihui.name/cn/publication/" href="http://yihui.name/cn/publication/" target="_blank">作品页面</a>内下载：<a title="统计图形和模拟视角下的模型理论解析" href="http://yihui.name/cn/publication/#GSM" target="_blank">http://yihui.name/cn/publication/#GSM</a></p>
<p>这论文呢，自我评价可以给个80分。最大的问题在于没有花时间去整理文章的结构，所以构架上稍微有点散乱（俗称“意识流”）。内容上熟悉我的博客的客官一眼就能看出来，其实都是些博客文章的汇总，只不过用LaTeX让它们变得“人模狗样”一些而已，好在本小子平时也积攒了这些鸡零狗碎的东西，动过自己的脑子。我觉得群众大学的毕业论文，很多都是一个套路：经济/金融数据套一个神奇的模型，直到最后整个世界一片和谐，读者在最后一章都能隐约看到上帝老爷子在朝你挥手。其实也没啥，找工作不容易，地球人也都知道写论文就是忽悠——漫漫人生路上一道工序。</p>
<p>由于本小子是个小人（小小的活人），所以总关心小人关心的事情（俗称“人本主义”）。这论文嘛，窃以为也没什么上下高低之分，说出你怎么想的就可以了，而不要总说“他们”怎么想怎么做。一定要有数学上的创新？一定要有人家看不懂的公式才是好论文？一定要有综述？一定要有长长的参考文献列表才是好论文？一定要板起脸？不能写八卦？不准幽默？……嗨，作茧自缚。几年前看到一篇好文章，颇具恶搞性质，建议各位客官收藏：<a title="http://www.philippeweil.com/links/BoringWriting.pdf" href="http://www.philippeweil.com/links/BoringWriting.pdf">How to write Consistently Boring Scientific Literature</a>。</p>
<p>言归正传：本文是厌倦八股文和数学理论的产物，从理论角度来说，几乎没什么价值，不过这篇文章是用Sweave写的，完全具有可重复性和100%透明度，对文中结果有怀疑的客官可以自行运行代码；其次，统计模拟和图形的声音在界内太微弱，大家都很忙，有人在忙着推公式，有人在忙着编数据，有人在忙着把公式用到不知道是不是编出来的数据上，本小子跟着瞎掺和了点别的东西，仅此而已。甭管有用没用，敬请拍砖。</p>
<p style="text-align: center;">－－－－－－－－－－外一篇：坛霸是怎样练成的－－－－－－－－－－</p>
<p>曾经有童鞋称呼在下为“坛霸”，这个……有时候确实有那么点意思，无图无真相（两个多月没怎么回帖了，一鼓作气）：</p>
<p><div id="attachment_1414" class="wp-caption aligncenter" style="width: 610px"><a href="http://yihui.name/cn/wp-content/uploads/2010/07/cos-bbs-landlord.gif"><img class="size-full wp-image-1414 " title="坛霸是怎样练成的" src="http://yihui.name/cn/wp-content/uploads/2010/07/cos-bbs-landlord.gif" alt="坛霸是怎样练成的" width="600" /></a><p class="wp-caption-text">坛霸是怎样练成的</p></div>
<p>接下来我会陆续写第三届中国R语言会议、《现代统计图形》书稿和useR! 2010，若时间允许，我考虑一下电视剧《九阴真经》（93版）。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/05/23 -- <a href="http://yihui.name/cn/2010/05/chinar-tutorial-and-sas-experts-wanted/" title="通知两则：第三届R会议培训及统计人才招聘">通知两则：第三届R会议培训及统计人才招聘</a> (12)</li><li>2010/05/19 -- <a href="http://yihui.name/cn/2010/05/asymptotia-mcnemar-test-statistics/" title="渐近理想国：McNemar检验的两种统计量">渐近理想国：McNemar检验的两种统计量</a> (0)</li><li>2010/04/15 -- <a href="http://yihui.name/cn/2010/04/knowledge-and-common-sense/" title="知识与常识：分析大学生挂科因素？">知识与常识：分析大学生挂科因素？</a> (17)</li><li>2010/04/14 -- <a href="http://yihui.name/cn/2010/04/stat-computation-math-logic/" title="统计计算与数学推导及逻辑分析">统计计算与数学推导及逻辑分析</a> (2)</li><li>2007/11/13 -- <a href="http://yihui.name/cn/2007/11/type-iii-error/" title="Type III Error（第三类错误）">Type III Error（第三类错误）</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2010/07/master-thesis-graphics-and-simulation-in-stat-models/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>渐近理想国：McNemar检验的两种统计量</title>
		<link>http://yihui.name/cn/2010/05/asymptotia-mcnemar-test-statistics/</link>
		<comments>http://yihui.name/cn/2010/05/asymptotia-mcnemar-test-statistics/#comments</comments>
		<pubDate>Wed, 19 May 2010 15:11:35 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[数据分析]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[统计计算]]></category>
		<category><![CDATA[KS检验]]></category>
		<category><![CDATA[McNemar检验]]></category>
		<category><![CDATA[列联表]]></category>
		<category><![CDATA[卡方统计量]]></category>
		<category><![CDATA[渐近理论]]></category>
		<category><![CDATA[统计模拟]]></category>
		<category><![CDATA[配对数据]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=1353</guid>
		<description><![CDATA[同经济学家不讲道德一样（学过经济学的人都知道这句话的意思），理论统计学家从某种程度上来说也不讲道德。我们常用的一些统计量通常都渐近服从某种分布（以卡方和正态为典型），看起来做理论的人对这些渐近理论都非常骄傲和自豪，我们在学习过程中也要一代一代传承下去。数学公式摆出来当然能唬人，也许唬到最后大家都为光着屁股的皇帝欢呼。坦白说，我对这些东西感到非常厌倦。
近日来收到邮件少了，但各个问题都不太好直接回答。比如这则关于McNemar检验的问题：McNemar检验可以有两种形式的统计量，一为(b &#8211; c)2/(b + c)，一为2b*log(2b/(b+c)) + 2c*log(2c/(b+c))，其中b和c是列联表非对角线上的频数。前者是McNemar检验本身的统计量，可以根据渐近正态分布得来（然后平方得到卡方），后者是似然比统计量（不带约束的似然除以带约束的，取对数，乘2）。McNemar检验看似复杂，实际上可以简化为检验b = c，或等价于检验一个n = b+c的二项分布中，是否p = 1/2（观察到X = b或c）。现在的问题是，这两种统计量有没有优劣之分？
作为一个懒得推公式的人，我向来喜欢用模拟回答问题，因为模拟的结果非常直截了当。我的考虑是，要看渐近统计量的优劣，那就看随着n增大，统计量和渐近分布有多接近好了。一个自然而然的想法当然是对若干统计量的观测值做分布检验了，比如KS检验。我们知道这两个统计量都是自由度为1的卡方分布，剩下的事情就是计算：
set.seed(123)
nmax = 1000
p = matrix(nrow = nmax, ncol = 2)
for (n in 2:nmax) {
    # 生成服从二项分布的随机数，分别计算两种统计量并作KS检验、记录P值
    b = rbinom(500, n, 0.5)
    x1 = (b - (n - b))^2/n
    x2 [...]]]></description>
			<content:encoded><![CDATA[<a href="http://yihui.name/cn/2010/05/asymptotia-mcnemar-test-statistics/"><span class="dropcap-red">如</span></a>同经济学家不讲道德一样（学过经济学的人都知道这句话的意思），理论统计学家从某种程度上来说也不讲道德。我们常用的一些统计量通常都渐近服从某种分布（以卡方和正态为典型），看起来做理论的人对这些渐近理论都非常骄傲和自豪，我们在学习过程中也要一代一代传承下去。数学公式摆出来当然能唬人，也许唬到最后大家都为光着屁股的皇帝欢呼。坦白说，我对这些东西感到非常厌倦。</p>
<p>近日来收到邮件少了，但各个问题都不太好直接回答。比如这则关于McNemar检验的问题：McNemar检验可以有两种形式的统计量，一为(b &#8211; c)<sup>2</sup>/(b + c)，一为2b*log(2b/(b+c)) + 2c*log(2c/(b+c))，其中b和c是列联表非对角线上的频数。前者是McNemar检验本身的统计量，可以根据渐近正态分布得来（然后平方得到卡方），后者是似然比统计量（不带约束的似然除以带约束的，取对数，乘2）。McNemar检验看似复杂，实际上可以简化为检验b = c，或等价于检验一个n = b+c的二项分布中，是否p = 1/2（观察到X = b或c）。现在的问题是，这两种统计量有没有优劣之分？</p>
<p>作为一个懒得推公式的人，我向来喜欢用模拟回答问题，因为模拟的结果非常直截了当。我的考虑是，要看渐近统计量的优劣，那就看随着n增大，统计量和渐近分布有多接近好了。一个自然而然的想法当然是对若干统计量的观测值做分布检验了，比如KS检验。我们知道这两个统计量都是自由度为1的卡方分布，剩下的事情就是计算：</p>
<pre>set.seed(123)
nmax = 1000
p = matrix(nrow = nmax, ncol = 2)
for (n in 2:nmax) {
    # 生成服从二项分布的随机数，分别计算两种统计量并作KS检验、记录P值
    b = rbinom(500, n, 0.5)
    x1 = (b - (n - b))^2/n
    x2 = 2 * b * log(2 * b/n) + 2 * (n - b) * log(2 * (n - b)/n)
    p[n, 1] = ks.test(x1, "pchisq", df = 1)$p.value
    p[n, 2] = ks.test(x2, "pchisq", df = 1)$p.value
}
# 调整一下数据格式，画图：随着n增大，P值如何变化？
library(ggplot2)
d = melt(p, varnames = c("n", "method"))
d$method = factor(d$method, labels = c("McNemar", "LRT"))
colnames(d)[3] = "p.value"
qplot(n, p.value, data = d, shape = method, geom = c("smooth", "point")) +
    scale_shape_manual(values = c(2, 3))
</pre>
<p><div id="attachment_1354" class="wp-caption aligncenter" style="width: 610px"><a href="http://yihui.name/cn/wp-content/uploads/2010/05/McNemar-test.png"><img class="size-full wp-image-1354" title="McNemar检验统计量与卡方分布拟合的好坏" src="http://yihui.name/cn/wp-content/uploads/2010/05/McNemar-test.png" alt="McNemar检验统计量与卡方分布拟合的好坏" width="600" height="400" /></a><p class="wp-caption-text">McNemar检验统计量与卡方分布拟合的好坏</p></div>
<p><span id="more-1353"></span>实际上，两种统计量与卡方分布的接近程度几乎是一样的，对于每一个n，KS检验得到的P值都差不多，可以看见图上两种方法检验得到的P值基本上是重叠的（其实也意味着统计量的值差不多），而n过了200之后，统计量基本上和卡方分布拟合比较好，即P值较大，但这种关系并不严格。</p>
<p>渐近理想国（asymptotia），来自Little (2006)在The American Statistician的文章，这词在英语词典中查不到，我将它翻译为“渐近理想国”。该文章是讲频率学派与贝叶斯学派的争论，提到人们对“渐近”的无奈：一个步履蹒跚的旅人，心想这理想国嘛时候才能到达呢？</p>
<p>至少在McNemar检验中，这个问题有了一个模糊的答案。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/07/30 -- <a href="http://yihui.name/cn/2010/07/master-thesis-graphics-and-simulation-in-stat-models/" title="统计图形和模拟视角下的模型理论解析">统计图形和模拟视角下的模型理论解析</a> (3)</li><li>2010/04/14 -- <a href="http://yihui.name/cn/2010/04/stat-computation-math-logic/" title="统计计算与数学推导及逻辑分析">统计计算与数学推导及逻辑分析</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2010/05/asymptotia-mcnemar-test-statistics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>R的第五万次SVN修改：看看R大佬们的工作时间分布</title>
		<link>http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/</link>
		<comments>http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 03:14:13 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[R 语言]]></category>
		<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[commit]]></category>
		<category><![CDATA[Prof Ripley]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[SAS]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=1075</guid>
		<description><![CDATA[天Ripley教授向R提交了第50000次修改，Romain Francios对SVN的日志数据做了一些简单分析，我个人一直关心Ripley是不是整天不用睡觉（你看这老爷子一天到晚都在邮件列表中出没），这次正好验证一下他是不是24小时工作，数据和R代码参见50000 Revisions Committed to R。
Ripley从1999年加入R核心团队，从上图可以看出，他显然是不需要睡觉的——每个小时都可能有commit。时间分布呈双峰：早上7点到10点、下午3点到6点。看看其他人的工作时间，很容易发现Martin倾向于早起干活，而Peter倾向于每天晚上12点之后干活。
Romain的博客中有SVN的日志数据可以下载，感兴趣的同志们可以继续分析R core的工作行为。
上周上课，我们老爷子又说SAS is extremely powerful，SAS很靠谱，就差明说SAS没有Bug了。我正在整理课程笔记，SAS的事情，我改天要去找老爷子好好谈一谈。R从不说自己能担保什么，大家拼命找bug，拼命改进，这是开源软件的共同特征——没有人付钱，但就是有一群疯子半夜3点还在写代码。商业软件一向说自己能保证什么，可是一个bug二十年都没人会去修正（例），还好我们看不见源代码，要是能看见，后果不堪设想。
爷还想看：2009/12/08 -- 最近跟R core们经常打照面 (9)2008/08/22 -- 数据导入/导出的通用方法 (0)2010/01/05 -- t检验方差不齐有多重要 (6)2009/12/31 -- 统计之都新年构想（杂碎篇） (33)2009/12/04 -- 2009第一场雪和第二届中国R语言会议 (43)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/"><span class="dropcap">昨</span></a>天Ripley教授向R提交了第50000次修改，Romain Francios对SVN的日志数据<a title="http://romainfrancois.blog.free.fr/index.php?post/2009/10/09/celebrating-R-commit-50000" href="http://romainfrancois.blog.free.fr/index.php?post/2009/10/09/celebrating-R-commit-50000" target="_blank">做了一些简单分析</a>，我个人一直关心Ripley是不是整天不用睡觉（你看这老爷子一天到晚都在邮件列表中出没），这次正好验证一下他是不是24小时工作，数据和R代码参见<a href="http://yihui.name/en/2009/10/50000-revisions-committed-to-r/" target="_blank">50000 Revisions Committed to R</a>。</p>
<p><a href="http://yihui.name/en/wp-content/uploads/2009/10/ripley-work-hour.png"><img class="aligncenter" title="Prof Ripley需要睡觉么？" src="http://yihui.name/en/wp-content/uploads/2009/10/ripley-work-hour.png" alt="" width="480" height="480" /></a>Ripley从1999年加入R核心团队，从上图可以看出，他显然是不需要睡觉的——每个小时都可能有commit。时间分布呈双峰：早上7点到10点、下午3点到6点。看看其他人的工作时间，很容易发现Martin倾向于早起干活，而Peter倾向于每天晚上12点之后干活。</p>
<p>Romain的博客中有SVN的日志数据可以下载，感兴趣的同志们可以继续分析R core的工作行为。</p>
<p>上周上课，我们老爷子又说SAS is extremely powerful，SAS很靠谱，就差明说SAS没有Bug了。我正在整理课程笔记，SAS的事情，我改天要去找老爷子好好谈一谈。R从不说自己能担保什么，大家拼命找bug，拼命改进，这是开源软件的共同特征——没有人付钱，但就是有一群疯子半夜3点还在写代码。商业软件一向说自己能保证什么，可是一个bug二十年都没人会去修正（<a title="https://www.stat.math.ethz.ch/pipermail/r-help/2009-June/202220.html" href="https://www.stat.math.ethz.ch/pipermail/r-help/2009-June/202220.html" target="_blank">例</a>），还好我们看不见源代码，要是能看见，后果不堪设想。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2008/08/22 -- <a href="http://yihui.name/cn/2008/08/data-import-and-export-approach/" title="数据导入/导出的通用方法">数据导入/导出的通用方法</a> (0)</li><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/31 -- <a href="http://yihui.name/cn/2009/12/cos-in-2010/" title="统计之都新年构想（杂碎篇）">统计之都新年构想（杂碎篇）</a> (33)</li><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>用R语言和Flash以及JavaScript生成标签云</title>
		<link>http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/</link>
		<comments>http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 09:46:15 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[网站和网页]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[R-help]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wp-cumulus]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[标签云]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=1029</guid>
		<description><![CDATA[些日子有位童鞋在R-help邮件列表里问如何生成那种单词大小与其出现频率成比例的图，这玩意儿也就是通常所说的标签云（Tag Cloud）。我琢磨了一下WordPress的插件wp-cumulus，发现其原理很简单，不过就是将标签信息以XML形式通过JavaScript传递给一个Flash文件，所以也很容易用R去实现这个传递过程，即：将文本、超级链接以及频数写成XML，然后嵌入到HTML文件中。整个过程参见Creating Tag Cloud Using R and Flash / JavaScript (SWFObject)这篇日志，函数源代码和示例数据都可以从那里下载。
效果是这样的：

Your browser does not support Flash or Javascript!

（通过RSS阅读的童鞋们请打开原文链接在浏览器中观看，否则啥都看不到）
爷还想看：2009/05/30 -- 用Google Chart API展示简单的数据以及WordPress示例 (5)2009/02/18 -- R社区实现了共产主义…… (0)2009/01/18 -- R的那些事儿 (2)2008/09/11 -- 人生何处不相逢 (0)2008/06/07 -- 转义符：从R到JavaScript到HTML (0)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/"><span class="dropcap-grey">前</span></a>些日子有位童鞋在R-help邮件列表里问如何生成那种单词大小与其出现频率成比例的图，这玩意儿也就是通常所说的标签云（Tag Cloud）。我琢磨了一下WordPress的插件wp-cumulus，发现其原理很简单，不过就是将标签信息以XML形式通过JavaScript传递给一个Flash文件，所以也很容易用R去实现这个传递过程，即：将文本、超级链接以及频数写成XML，然后嵌入到HTML文件中。整个过程参见<a title="Creating Tag Cloud Using R and Flash / JavaScript (SWFObject)" href="http://yihui.name/en/2009/06/creating-tag-cloud-using-r-and-flash-javascript-swfobject/" target="_blank">Creating Tag Cloud Using R and Flash / JavaScript (SWFObject)</a>这篇日志，函数源代码和示例数据都可以从那里下载。</p>
<p>效果是这样的：<br />
<script src="http://yihui.name/en/wp-content/uploads/2009/06/swfobject.js" type="text/javascript"></script></p>
<div id="tagCloudId" style="text-align: center;">Your browser does not support Flash or Javascript!</div>
<p><script type="text/javascript"><!--
		var so = new SWFObject("http://yihui.name/en/wp-content/uploads/2009/06/tagcloud.swf", "tagcloud", "500", "400", "9", "#ffffff");
		so.addParam("wmode", "transparent");
		so.addVariable("mode", "tags");
		so.addVariable("tcolor", "0x333333");
		so.addVariable("tcolor2", "0x009900");
		so.addVariable("hicolor", "0xff0000");
		so.addVariable("tspeed", "100");
		so.addVariable("distr", "true");
		so.addVariable("tagcloud", "%3ctags%3e%3ca%20href='http://yihui.name/en/tag/2d-kernel-density/'%20style='4'%20target='_blank'%20color='0x2163bb'%20hicolor='0xf0763d'%3e2D%20Kernel%20Density%3c/a%3e%3ca%20href='http://yihui.name/en/tag/algorithm/'%20style='4'%20target='_blank'%20color='0x9f0f38'%20hicolor='0xd825b1'%3ealgorithm%3c/a%3e%3ca%20href='http://yihui.name/en/tag/animation/'%20style='44'%20target='_blank'%20color='0x800130'%20hicolor='0x5b8d6a'%3eAnimation%3c/a%3e%3ca%20href='http://yihui.name/en/tag/aniwiki/'%20style='8'%20target='_blank'%20color='0x7ce1df'%20hicolor='0x6607b0'%3eAniWiki%3c/a%3e%3ca%20href='http://yihui.name/en/tag/arcing/'%20style='4'%20target='_blank'%20color='0xdf4e4a'%20hicolor='0xf5cdf2'%3eArcing%3c/a%3e%3ca%20href='http://yihui.name/en/tag/arrows/'%20style='4'%20target='_blank'%20color='0x31f5fb'%20hicolor='0x19d50d'%3earrows()%3c/a%3e%3ca%20href='http://yihui.name/en/tag/beamer/'%20style='4'%20target='_blank'%20color='0xc2acba'%20hicolor='0xb5339e'%3ebeamer%3c/a%3e%3ca%20href='http://yihui.name/en/tag/bean-machine/'%20style='4'%20target='_blank'%20color='0x38daed'%20hicolor='0x8d8cbe'%3eBean%20machine%3c/a%3e%3ca%20href='http://yihui.name/en/tag/boadilla/'%20style='4'%20target='_blank'%20color='0x286ec0'%20hicolor='0xe19caf'%3eBoadilla%3c/a%3e%3ca%20href='http://yihui.name/en/tag/book/'%20style='4'%20target='_blank'%20color='0x25ec53'%20hicolor='0xbb22df'%3eBook%3c/a%3e%3ca%20href='http://yihui.name/en/tag/boosting/'%20style='4'%20target='_blank'%20color='0xe2c060'%20hicolor='0xa1b2cc'%3eBoosting%3c/a%3e%3ca%20href='http://yihui.name/en/tag/brownian-motion/'%20style='4'%20target='_blank'%20color='0xab4709'%20hicolor='0x28e0e1'%3eBrownian%20Motion%3c/a%3e%3ca%20href='http://yihui.name/en/tag/bubble-plot/'%20style='4'%20target='_blank'%20color='0x74afe4'%20hicolor='0x79f2fa'%3eBubble%20Plot%3c/a%3e%3ca%20href='http://yihui.name/en/tag/campus/'%20style='4'%20target='_blank'%20color='0xb7eb85'%20hicolor='0x6fbb8c'%3eCampus%3c/a%3e%3ca%20href='http://yihui.name/en/tag/cluster-sampling/'%20style='4'%20target='_blank'%20color='0xb4bd58'%20hicolor='0x2800c7'%3ecluster%20sampling%3c/a%3e%3ca%20href='http://yihui.name/en/tag/coin/'%20style='4'%20target='_blank'%20color='0xa5abcf'%20hicolor='0xd4c594'%3eCoin%3c/a%3e%3ca%20href='http://yihui.name/en/tag/conan-doyle/'%20style='4'%20target='_blank'%20color='0xeabeca'%20hicolor='0x4a5814'%3eConan%20Doyle%3c/a%3e%3ca%20href='http://yihui.name/en/tag/conclusion/'%20style='4'%20target='_blank'%20color='0x331dc7'%20hicolor='0xa26978'%3eConclusion%3c/a%3e%3ca%20href='http://yihui.name/en/tag/confidence-interval/'%20style='4'%20target='_blank'%20color='0x6f0a88'%20hicolor='0x7b0126'%3eConfidence%20Interval%3c/a%3e%3ca%20href='http://yihui.name/en/tag/convergence/'%20style='4'%20target='_blank'%20color='0x095f1c'%20hicolor='0x90568e'%3eConvergence%3c/a%3e%3ca%20href='http://yihui.name/en/tag/covariance/'%20style='4'%20target='_blank'%20color='0x2880e3'%20hicolor='0x9c530e'%3eCovariance%3c/a%3e%3ca%20href='http://yihui.name/en/tag/flash/'%20style='8'%20target='_blank'%20color='0xb3f222'%20hicolor='0x1b76bc'%3eFlash%3c/a%3e%3ca%20href='http://yihui.name/en/tag/gradient-descent/'%20style='8'%20target='_blank'%20color='0xbdf2d4'%20hicolor='0x7cd201'%3eGradient%20Descent%3c/a%3e%3ca%20href='http://yihui.name/en/tag/graphics/'%20style='32'%20target='_blank'%20color='0x6ea48d'%20hicolor='0x29a816'%3eGraphics%3c/a%3e%3ca%20href='http://yihui.name/en/tag/highlight/'%20style='8'%20target='_blank'%20color='0x59508e'%20hicolor='0x6d5de6'%3eHighlight%3c/a%3e%3ca%20href='http://yihui.name/en/tag/hypothesis-test/'%20style='8'%20target='_blank'%20color='0x7b88bb'%20hicolor='0xabc9f8'%3eHypothesis%20Test%3c/a%3e%3ca%20href='http://yihui.name/en/tag/image/'%20style='8'%20target='_blank'%20color='0x06ac63'%20hicolor='0x92614f'%3eimage()%3c/a%3e%3ca%20href='http://yihui.name/en/tag/interaction/'%20style='8'%20target='_blank'%20color='0xd8dbce'%20hicolor='0x44f1a4'%3eInteraction%3c/a%3e%3ca%20href='http://yihui.name/en/tag/joke/'%20style='8'%20target='_blank'%20color='0xa68ed9'%20hicolor='0x4dc5a7'%3eJoke%3c/a%3e%3ca%20href='http://yihui.name/en/tag/jokes/'%20style='8'%20target='_blank'%20color='0x2f18ca'%20hicolor='0x034e9c'%3eJokes%3c/a%3e%3ca%20href='http://yihui.name/en/tag/latex/'%20style='20'%20target='_blank'%20color='0x8cb56a'%20hicolor='0x4b3de1'%3eLaTeX%3c/a%3e%3ca%20href='http://yihui.name/en/tag/line-break/'%20style='8'%20target='_blank'%20color='0xdfd52a'%20hicolor='0xb328c7'%3eline%20break%3c/a%3e%3ca%20href='http://yihui.name/en/tag/map/'%20style='8'%20target='_blank'%20color='0x3b64b9'%20hicolor='0x13e24e'%3eMap%3c/a%3e%3ca%20href='http://yihui.name/en/tag/model/'%20style='12'%20target='_blank'%20color='0x573218'%20hicolor='0xf98a0e'%3eModel%3c/a%3e%3ca%20href='http://yihui.name/en/tag/mouse/'%20style='8'%20target='_blank'%20color='0xc6420f'%20hicolor='0xcce772'%3eMouse%3c/a%3e%3ca%20href='http://yihui.name/en/tag/new-year/'%20style='8'%20target='_blank'%20color='0x3d0906'%20hicolor='0xe3ff6d'%3eNew%20Year%3c/a%3e%3ca%20href='http://yihui.name/en/tag/parse/'%20style='8'%20target='_blank'%20color='0x1387a6'%20hicolor='0x848ea2'%3eparse()%3c/a%3e%3ca%20href='http://yihui.name/en/tag/pdf/'%20style='12'%20target='_blank'%20color='0x6b97b1'%20hicolor='0x5855be'%3epdf()%3c/a%3e%3ca%20href='http://yihui.name/en/tag/plugin/'%20style='8'%20target='_blank'%20color='0x33942f'%20hicolor='0x77ab96'%3eplugin%3c/a%3e%3ca%20href='http://yihui.name/en/tag/random-number-generator/'%20style='8'%20target='_blank'%20color='0xa6e5cb'%20hicolor='0x1cdf76'%3eRandom%20Number%20Generator%3c/a%3e%3ca%20href='http://yihui.name/en/tag/r-code/'%20style='16'%20target='_blank'%20color='0x9f6dca'%20hicolor='0x3af938'%3eR%20code%3c/a%3e%3ca%20href='http://yihui.name/en/tag/r-language/'%20style='48'%20target='_blank'%20color='0x6b3da1'%20hicolor='0x606774'%3eR%20Language%3c/a%3e%3ca%20href='http://yihui.name/en/tag/r-package/'%20style='20'%20target='_blank'%20color='0x2683f4'%20hicolor='0x67bbc4'%3eR%20Package%3c/a%3e%3ca%20href='http://yihui.name/en/tag/statistical-analysis/'%20style='8'%20target='_blank'%20color='0x2f1125'%20hicolor='0xaa5142'%3eStatistical%20Analysis%3c/a%3e%3ca%20href='http://yihui.name/en/tag/web-site/'%20style='8'%20target='_blank'%20color='0x6ca810'%20hicolor='0x2374b4'%3eweb%20site%3c/a%3e%3c/tags%3e");
		so.write("tagCloudId");
// --></script></p>
<p>（通过RSS阅读的童鞋们请打开原文链接在浏览器中观看，否则啥都看不到）</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/05/30 -- <a href="http://yihui.name/cn/2009/05/visualize-simple-data-with-google-chart-api/" title="用Google Chart API展示简单的数据以及WordPress示例">用Google Chart API展示简单的数据以及WordPress示例</a> (5)</li><li>2009/02/18 -- <a href="http://yihui.name/cn/2009/02/communism-in-r-community/" title="R社区实现了共产主义……">R社区实现了共产主义……</a> (0)</li><li>2009/01/18 -- <a href="http://yihui.name/cn/2009/01/interesting-r-fortunes/" title="R的那些事儿">R的那些事儿</a> (2)</li><li>2008/09/11 -- <a href="http://yihui.name/cn/2008/09/people-meet-everywhere/" title="人生何处不相逢">人生何处不相逢</a> (0)</li><li>2008/06/07 -- <a href="http://yihui.name/cn/2008/06/escape-operator-from-r-to-js-to-html/" title="转义符：从R到JavaScript到HTML">转义符：从R到JavaScript到HTML</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>画曲线的通用办法：描点法画图</title>
		<link>http://yihui.name/cn/2009/06/from-points-to-curves/</link>
		<comments>http://yihui.name/cn/2009/06/from-points-to-curves/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 14:28:41 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[curve()]]></category>
		<category><![CDATA[gamma()]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[杀牛用铅笔刀]]></category>
		<category><![CDATA[画图]]></category>
		<category><![CDATA[通用办法]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=1017</guid>
		<description><![CDATA[中的时候老师便教我们拿着直尺和圆规作图，那时候恐怕还没几个人会用电脑，直到初中毕业，我才第一次见电脑。那时候画曲线怎样画呢？记得就是在某个x区间上取一系列点，然后计算y = f(x)，把这些点描在笛卡尔坐标系中，然后用铅笔手工连起来。这个办法很笨很原始，但很有效，奇怪的是，到计算机如此发达的今天，仍然有人不断问如何用软件画曲线，仿佛中学时学的东西都还给数学老师了。例如，若干天前，有人问我如何用R画这个曲线：

我只好提醒他回忆中学的描点法。R里面的gamma()和curve()函数是现成的，把数学公式写成相应的代码就可以了：
curve((sqrt(2) * gamma(x/2) * 2)/(sqrt(x - 1) * gamma(x - 1)), 2, 50)
# 当然，如果你非要按照x = seq(2, 50, ...)然后计算f(x)然后plot(x, f(x), type = "l")
# 那也可以，只不过curve()就是干这事的，不必麻烦分两步走了
如同某些网文说人一辈子的守则在幼儿园都已经教完了，就看你长大还记不记得。所以每当面对一个貌似复杂的问题时，首先要想想幼儿园有没有学过。
“武功再高，也怕菜刀”绝对是真理，哈哈。
爷还想看：2010/01/05 -- t检验方差不齐有多重要 (6)2009/12/08 -- 最近跟R core们经常打照面 (9)2009/12/04 -- 2009第一场雪和第二届中国R语言会议 (43)2009/10/10 -- R的第五万次SVN修改：看看R大佬们的工作时间分布 (9)2009/06/10 -- 用R语言和Flash以及JavaScript生成标签云 (7)]]></description>
			<content:encoded><![CDATA[<a href="http://yihui.name/cn/2009/06/from-points-to-curves/"><span class="dropcap-none">初</span></a>中的时候老师便教我们拿着直尺和圆规作图，那时候恐怕还没几个人会用电脑，直到初中毕业，我才第一次见电脑。那时候画曲线怎样画呢？记得就是在某个<code>x</code>区间上取一系列点，然后计算<code>y = f(x)</code>，把这些点描在笛卡尔坐标系中，然后用铅笔手工连起来。这个办法很笨很原始，但很有效，奇怪的是，到计算机如此发达的今天，仍然有人不断问如何用软件画曲线，仿佛中学时学的东西都还给数学老师了。例如，若干天前，有人问我如何用R画这个曲线：</p>
<p style="text-align: center;"><img src="http://www.forkosh.dreamhost.com/mimetex.cgi?\normalsize f%28x%29%3D%28%5Csqrt%7B2%7D%2A%5CGamma%28x%2F2%29%2A2%29%2F%28%5Csqrt%7Bx-1%7D%2A%5CGamma%28x-1%29%29" title="f(x)=(\sqrt{2}*\Gamma(x/2)*2)/(\sqrt{x-1}*\Gamma(x-1))" alt="f(x)=(\sqrt{2}*\Gamma(x/2)*2)/(\sqrt{x-1}*\Gamma(x-1))" align="absmiddle" class="math" /></p>
<p>我只好提醒他回忆中学的描点法。R里面的<code>gamma()</code>和<code>curve()</code>函数是现成的，把数学公式写成相应的代码就可以了：</p>
<pre>curve((sqrt(2) * gamma(x/2) * 2)/(sqrt(x - 1) * gamma(x - 1)), 2, 50)
# 当然，如果你非要按照x = seq(2, 50, ...)然后计算f(x)然后plot(x, f(x), type = "l")
# 那也可以，只不过curve()就是干这事的，不必麻烦分两步走了</pre>
<p><div id="attachment_1019" class="wp-caption aligncenter" style="width: 490px"><a rel="attachment wp-att-1019" href="http://yihui.name/cn/2009/06/from-points-to-curves/curve-of-a-function/"><img class="size-full wp-image-1019" title="描点法画函数曲线" src="http://yihui.name/cn/wp-content/uploads/2009/06/curve-of-a-function.png" alt="描点法画函数曲线" width="480" height="350" /></a><p class="wp-caption-text">描点法画函数曲线</p></div>
<p>如同某些网文说人一辈子的守则在幼儿园都已经教完了，就看你长大还记不记得。所以每当面对一个貌似复杂的问题时，首先要想想幼儿园有没有学过。</p>
<p>“武功再高，也怕菜刀”绝对是真理，哈哈。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li><li>2009/10/10 -- <a href="http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/" title="R的第五万次SVN修改：看看R大佬们的工作时间分布">R的第五万次SVN修改：看看R大佬们的工作时间分布</a> (9)</li><li>2009/06/10 -- <a href="http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/" title="用R语言和Flash以及JavaScript生成标签云">用R语言和Flash以及JavaScript生成标签云</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/06/from-points-to-curves/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>本小子还真中了John Chambers软件奖</title>
		<link>http://yihui.name/cn/2009/04/won-john-chambers-award/</link>
		<comments>http://yihui.name/cn/2009/04/won-john-chambers-award/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 20:49:21 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[John Chambers]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[动画]]></category>
		<category><![CDATA[统计软件]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=288</guid>
		<description><![CDATA[时此刻，俺哆嗦着告诉各位客官，俺真的中奖了。
话说两个月前，我介绍了一下John Chambers软件奖，当时并没有指望获奖，只是打探打探情况，搞明白之后等我明年好好琢磨一个靠谱的软件之后再正式参加。结果，不知是美国人民都忙着对付金融危机了，还是一共就我一个人参加，或是怎么的，今日打开邮箱，发现我被通知得奖（中奖？）了。我愣了半天，觉得这是在做梦。
好吧，两个月前说了要请客，那么那篇日志底下的观众朋友们请赶紧拿出小本本记下，“谢某人欠俺一顿大餐”。
做动画都能获奖……敢问谱在何方啊……管它呢，反正是美国人的钱，俺遵旨，8月去华盛顿领钱，顺便领奖。
爷还想看：2009/02/27 -- John Chambers软件奖 (16)2008/12/25 -- 金狗宝金狗宝金狗饿了喂 (4)2008/11/04 -- 利用Google可视化API展示布朗运动 (7)2008/10/19 -- Java比R更容易表达连续型动画 (2)2008/09/27 -- 有谁在课上用统计动画 (3)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/04/won-john-chambers-award/"><span class="dropcap-blue">此</span></a>时此刻，俺哆嗦着告诉各位客官，俺真的中奖了。</p>
<p>话说两个月前，我<a title="John Chambers软件奖" href="http://yihui.name/cn/2009/02/introduction-to-john-chambers-software-award/" target="_blank">介绍了一下John Chambers软件奖</a>，当时并没有指望获奖，只是打探打探情况，搞明白之后等我明年好好琢磨一个靠谱的软件之后再正式参加。结果，不知是美国人民都忙着对付金融危机了，还是一共就我一个人参加，或是怎么的，今日打开邮箱，发现我被通知得奖（中奖？）了。我愣了半天，觉得这是在做梦。</p>
<p>好吧，两个月前说了要请客，那么那篇日志底下的观众朋友们请赶紧拿出小本本记下，“谢某人欠俺一顿大餐”。</p>
<p>做动画都能获奖……敢问谱在何方啊……管它呢，反正是美国人的钱，俺遵旨，8月去华盛顿领钱，顺便领奖。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/02/27 -- <a href="http://yihui.name/cn/2009/02/introduction-to-john-chambers-software-award/" title="John Chambers软件奖">John Chambers软件奖</a> (16)</li><li>2008/12/25 -- <a href="http://yihui.name/cn/2008/12/christmas-and-animation-package/" title="金狗宝金狗宝金狗饿了喂">金狗宝金狗宝金狗饿了喂</a> (4)</li><li>2008/11/04 -- <a href="http://yihui.name/cn/2008/11/brownian-motion-with-google-vis-api/" title="利用Google可视化API展示布朗运动">利用Google可视化API展示布朗运动</a> (7)</li><li>2008/10/19 -- <a href="http://yihui.name/cn/2008/10/java-is-better-than-r-in-animation/" title="Java比R更容易表达连续型动画">Java比R更容易表达连续型动画</a> (2)</li><li>2008/09/27 -- <a href="http://yihui.name/cn/2008/09/animation-in-classes/" title="有谁在课上用统计动画">有谁在课上用统计动画</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/04/won-john-chambers-award/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>邮件地址的频数统计</title>
		<link>http://yihui.name/cn/2009/04/frequency-of-email-addresses/</link>
		<comments>http://yihui.name/cn/2009/04/frequency-of-email-addresses/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 15:29:41 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[电脑网络]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[邮箱]]></category>
		<category><![CDATA[频数]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=285</guid>
		<description><![CDATA[Zhang H.启发，自个儿看了看Gmail邮箱的联系人，导出为Outlook的CSV格式，然后读进R，用正则表达式去掉*@部分，table()了一下。Hotmail邮箱的频数比我想象的要高，然后也没想到中科院植物所也排在前面，估计是那次R会议所致。剩下的联系人就分布在五湖四海了，结果请看：
PDF图形文件下载链接
频数文件：
CSV频数文件下载链接
x = read.csv("contacts.csv", stringsAsFactor = FALSE)
y = gsub("^.*@", "", x$E.mail.Address)
y = sort(table(y))
rho=0的文章：2007/11/14 -- 从二维数据到三维数据：光滑方法的预测 (4)2008/06/16 -- 对照组的重要性 (0)2007/11/12 -- animation包：人生第一份正式英文作品 (12)2008/09/02 -- 大家来找茬：这批数据有什么特别之处？（已提供真相） (17)2007/09/24 -- 金山词霸2007中的一句错误翻译 (2)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/04/frequency-of-email-addresses/"><span class="dropcap">受</span></a>Zhang H.启发，自个儿看了看Gmail邮箱的联系人，导出为Outlook的CSV格式，然后读进R，用正则表达式去掉*@部分，table()了一下。Hotmail邮箱的频数比我想象的要高，然后也没想到中科院植物所也排在前面，估计是那次R会议所致。剩下的联系人就分布在五湖四海了，结果请看：</p>
<p><a href="http://yihui.name/cn/wp-content/uploads/1239636497_0.pdf">PDF图形文件下载链接</a></p>
<p>频数文件：</p>
<p><a href="http://yihui.name/cn/wp-content/uploads/1239636842_0.gz">CSV频数文件下载链接</a></p>
<pre>x = read.csv("contacts.csv", stringsAsFactor = FALSE)
y = gsub("^.*@", "", x$E.mail.Address)
y = sort(table(y))</pre>
<h2  class="related_post_title">rho=0的文章：</h2><ul class="related_post"><li>2007/10/03 -- <a href="http://yihui.name/cn/2007/10/degree-of-freedom/" title="自由度与自由">自由度与自由</a> (9)</li><li>2007/10/09 -- <a href="http://yihui.name/cn/2007/10/cat-police-and-flower/" title="黑猫警长 · 洗澡花">黑猫警长 · 洗澡花</a> (4)</li><li>2007/11/13 -- <a href="http://yihui.name/cn/2007/11/type-iii-error/" title="Type III Error（第三类错误）">Type III Error（第三类错误）</a> (2)</li><li>2007/11/12 -- <a href="http://yihui.name/cn/2007/11/todo-list-of-the-animation-package/" title="关于动画包接下来要做的几件事情">关于动画包接下来要做的几件事情</a> (4)</li><li>2008/09/05 -- <a href="http://yihui.name/cn/2008/09/dont-understand-why-you-dont-understand/" title="娇客二则：（1）不明白你为什么明白（2）光合作用">娇客二则：（1）不明白你为什么明白（2）光合作用</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/04/frequency-of-email-addresses/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>指北箭头</title>
		<link>http://yihui.name/cn/2009/03/north-arrow-in-r/</link>
		<comments>http://yihui.name/cn/2009/03/north-arrow-in-r/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 06:40:04 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[作图]]></category>
		<category><![CDATA[箭头]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=272</guid>
		<description><![CDATA[们可以把R-help邮件列表当作一个练手的地方，比如今天有人想把地图上的指北箭头作为位图格式导入他的地图，而我则建议不如手工画一个：
north.arrow = function(x, y, h) {
    polygon(c(x, x, x + h/2), c(y - h, y, y - (1 + sqrt(3)/2) *
        h), col = "black", border = NA)
    polygon(c(x, x + h/2, x, x - h/2), c(y - h, y - (1 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/03/north-arrow-in-r/"><span class="dropcap-green">我</span></a>们可以把R-help邮件列表当作一个练手的地方，比如今天有人想把地图上的指北箭头作为位图格式导入他的地图，而我则建议不如手工画一个：</p>
<pre>north.arrow = function(x, y, h) {
    polygon(c(x, x, x + h/2), c(y - h, y, y - (1 + sqrt(3)/2) *
        h), col = "black", border = NA)
    polygon(c(x, x + h/2, x, x - h/2), c(y - h, y - (1 + sqrt(3)/2) *
        h, y, y - (1 + sqrt(3)/2) * h))
    text(x, y, "N", adj = c(0.5, 0), cex = 4)
}
par(mar = rep(0, 4))
plot(1, type = "n", ylim = c(0, 1), axes = FALSE,
    ann = FALSE)
north.arrow(1, 0.8, 0.4)</pre>
<p align="center"><img title="指北箭头" src="http://yihui.name/cn/wp-content/uploads/1236753415_0.png" border="0" alt="指北箭头" /></p>
<p>不过这种基础性练习带来的坏处就是，你总觉得用R的基础图形元素什么图都可以画，从而不愿学习新的作图系统。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li><li>2009/10/10 -- <a href="http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/" title="R的第五万次SVN修改：看看R大佬们的工作时间分布">R的第五万次SVN修改：看看R大佬们的工作时间分布</a> (9)</li><li>2009/06/10 -- <a href="http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/" title="用R语言和Flash以及JavaScript生成标签云">用R语言和Flash以及JavaScript生成标签云</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/03/north-arrow-in-r/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Cartogram：变形的地图</title>
		<link>http://yihui.name/cn/2009/03/cartogram-as-special-maps/</link>
		<comments>http://yihui.name/cn/2009/03/cartogram-as-special-maps/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 05:47:40 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[Cartogram]]></category>
		<category><![CDATA[Duncan Temple Lang]]></category>
		<category><![CDATA[Rcartogram]]></category>
		<category><![CDATA[地图]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=262</guid>
		<description><![CDATA[地图展示统计信息有一个明显的缺陷，就是各地区的面积大小可能会极大地影响你的视觉。如：北京上海面积小，但人口多，若是直接用地图的颜色或斜线密度表示人口多少，那么这些面积小的地区将会很不显眼，而事实上它们本应该是很“吸引眼球”的地方，这种情况下，我们可以将地区边界变形，使得面积和统计信息成比例。尽管你会看到一副很丑的图，但表达的信息却是被校正过的。
一个更明显的例子是美国的大选，若用红蓝标示各州的选举情况，似乎红方麦凯恩大胜了，而事实是麦凯恩获胜的州都是人口稀少的地方，总账算下来，仍然是奥巴马那小子赢了（比如他拿下了人口众多的加州）。看看以下两幅地图的对比：


Duncan Temple Lang几年前写了一个包叫Rcartogram，发在Omegahat上，不过不幸的是，Windows用户不能使用。它是基于一个C程序的，而这个程序里面的算法又涉及到另一个做快速傅里叶变换（FFT）的软件包，因此在Windows下编译起来很复杂（我花了很长时间也没搞清楚）。
Cartogram的一种算法可以参见&#8221;Diffusion-based method for producing density-equalizing maps&#8220;一文。
爷还想看：2009/12/08 -- 最近跟R core们经常打照面 (9)2008/12/25 -- 金狗宝金狗宝金狗饿了喂 (4)2008/12/02 -- SVGAnnotation：从R图形到SVG的（全面）支持 (0)2008/10/07 -- 用R画中国地图并标注城市位置 (19)2007/09/15 -- 终于搞定了中国分省市地图 (40)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/03/cartogram-as-special-maps/"><span class="dropcap-purple">用</span></a>地图展示统计信息有一个明显的缺陷，就是各地区的面积大小可能会极大地影响你的视觉。如：北京上海面积小，但人口多，若是直接用地图的颜色或斜线密度表示人口多少，那么这些面积小的地区将会很不显眼，而事实上它们本应该是很“吸引眼球”的地方，这种情况下，我们可以将地区边界变形，使得面积和统计信息成比例。尽管你会看到一副很丑的图，但表达的信息却是被校正过的。</p>
<p>一个更明显的例子是美国的大选，若用红蓝标示各州的选举情况，似乎红方麦凯恩大胜了，而事实是麦凯恩获胜的州都是人口稀少的地方，总账算下来，仍然是奥巴马那小子赢了（比如他拿下了人口众多的加州）。看看以下两幅地图的对比：</p>
<p style="text-align: center;" align="center"><a title="不要急于下结论说麦凯恩赢了" rel="lightbox[cart]" href="http://www-personal.umich.edu/~mejn/election/2008/statemapredbluer1024.png"><img class="aligncenter" style="border: 0pt none;" src="http://www-personal.umich.edu/~mejn/election/2008/statemapredbluer512.png" border="0" alt="" width="512" height="313" /></a></p>
<p style="text-align: center;" align="center"><a title="美国大选的Cartogram" rel="lightbox[cart]" href="http://www-personal.umich.edu/~mejn/election/2008/statepopredblue1024.png"><img class="aligncenter" style="border: 0pt none;" src="http://www-personal.umich.edu/~mejn/election/2008/statepopredblue512.png" border="0" alt="" width="512" height="365" /></a></p>
<p>Duncan Temple Lang几年前写了一个包叫<a title="http://www.omegahat.org/Rcartogram/" href="http://www.omegahat.org/Rcartogram/" target="_blank">Rcartogram</a>，发在Omegahat上，不过不幸的是，Windows用户不能使用。它是基于一个C程序的，而这个程序里面的算法又涉及到另一个做快速傅里叶变换（FFT）的软件包，因此在Windows下编译起来很复杂（我花了很长时间也没搞清楚）。</p>
<p>Cartogram的一种算法可以参见&#8221;<a title="http://www.pnas.org/content/101/20/7499.abstract" href="http://www.pnas.org/content/101/20/7499.abstract" target="_blank">Diffusion-based method for producing density-equalizing maps</a>&#8220;一文。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2008/12/25 -- <a href="http://yihui.name/cn/2008/12/christmas-and-animation-package/" title="金狗宝金狗宝金狗饿了喂">金狗宝金狗宝金狗饿了喂</a> (4)</li><li>2008/12/02 -- <a href="http://yihui.name/cn/2008/12/svgannotation-from-r-graphics-to-svg/" title="SVGAnnotation：从R图形到SVG的（全面）支持">SVGAnnotation：从R图形到SVG的（全面）支持</a> (0)</li><li>2008/10/07 -- <a href="http://yihui.name/cn/2008/10/china-map-and-city-locations-with-r/" title="用R画中国地图并标注城市位置">用R画中国地图并标注城市位置</a> (19)</li><li>2007/09/15 -- <a href="http://yihui.name/cn/2007/09/china-map-at-province-level/" title="终于搞定了中国分省市地图">终于搞定了中国分省市地图</a> (40)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/03/cartogram-as-special-maps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>R图形的动态缩放和平移</title>
		<link>http://yihui.name/cn/2009/02/to-zoom-and-pan-r-graphs/</link>
		<comments>http://yihui.name/cn/2009/02/to-zoom-and-pan-r-graphs/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 07:46:26 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[程序开发]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[getGraphicsEvent()]]></category>
		<category><![CDATA[Simon Urbanek]]></category>
		<category><![CDATA[交互式图形]]></category>
		<category><![CDATA[动态图形]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=253</guid>
		<description><![CDATA[近两天Friedrich在R-devel发了一个通知，告诉大家要开始准备Google Summer of Code了！然后一位叫Oleg Sklyar的同志迫不及待提出了两个主意，结果讨论很快就乱了套，因为他提的第一个主意就是关于交互式图形的，他说很关键的一点是R不能实现图形的缩放和平移（zooming and panning），我一看，不对劲呀，谁说不能缩放、平移呀，于是三下五除二给了一个例子：
##################################################################
# a demo for zooming and panning in R graphics
# by Yihui Xie, Feb 20, 2009
##################################################################
# a large number of points
plot(x &#60;- rnorm(5000), y &#60;- rnorm(5000), xlab = "x", ylab = "y")
xylim &#60;- c(range(x), range(y))
zoom &#60;- function(d, speed = 0.05) {
   rx &#60;- speed * (xylim[2] - [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/02/to-zoom-and-pan-r-graphs/"><span class="dropcap-brown">最</span></a>近两天Friedrich在R-devel发了一个通知，告诉大家<a title="https://stat.ethz.ch/pipermail/r-devel/2009-February/052190.html" href="https://stat.ethz.ch/pipermail/r-devel/2009-February/052190.html" target="_blank">要开始准备Google Summer of Code了</a>！然后一位叫Oleg Sklyar的同志迫不及待<a title="https://stat.ethz.ch/pipermail/r-devel/2009-February/052202.html" href="https://stat.ethz.ch/pipermail/r-devel/2009-February/052202.html" target="_blank">提出了两个主意</a>，结果讨论很快就乱了套，因为他提的第一个主意就是关于交互式图形的，他说很关键的一点是R不能实现图形的缩放和平移（zooming and panning），我一看，不对劲呀，谁说不能缩放、平移呀，于是三下五除二给了一个例子：</p>
<pre>##################################################################
# a demo for zooming and panning in R graphics
# by Yihui Xie, Feb 20, 2009
##################################################################
# a large number of points
plot(x &lt;- rnorm(5000), y &lt;- rnorm(5000), xlab = "x", ylab = "y")
xylim &lt;- c(range(x), range(y))
zoom &lt;- function(d, speed = 0.05) {
   rx &lt;- speed * (xylim[2] - xylim[1])
   ry &lt;- speed * (xylim[4] - xylim[3])
   # global assignment '&lt;&lt;-' here!
   xylim &lt;&lt;- xylim + d * c(rx, -rx, ry, -ry)
   plot(x, y, xlim = xylim[1:2], ylim = xylim[3:4])
   NULL
}
# Key `+`: zoom in; `-`: zoom out
# Left, Right, Up, Down: self-explaining
# `*`: reset
# Press other keys to quit
keybd &lt;- function(key) {
   switch(key, `+` = zoom(1), `-` = zoom(-1), Left = zoom(c(-1,
       1, 0, 0)), Right = zoom(c(1, -1, 0, 0)), Up = zoom(c(0,
       0, 1, -1)), Down = zoom(c(0, 0, -1, 1)), `*` = plot(x,
       y), "Quit the program")
}
getGraphicsEvent(onKeybd = keybd)
##################################################################</pre>
<p>上图仅限于Windows下操作，因为<span style="font-family: Bitstream Vera Sans Mono,courier new,monospace">getGraphicsEvent()</span>函数仅限于Windows图形设备使用。通过键盘上的加（放大）减（缩小）乘（恢复）和上下左右键可以很容易实现图形的动态缩放和平移。</p>
<p>不过后来Simon Urbanek老大<a title="https://stat.ethz.ch/pipermail/r-devel/2009-February/052215.html" href="https://stat.ethz.ch/pipermail/r-devel/2009-February/052215.html" target="_blank">发话了</a>，Yihui你这不叫交互式图形；Simon老大说得对，不过俺只是为了说明R并不是像Oleg老大讲的那样不能实现缩放和平移。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2008/10/20 -- <a href="http://yihui.name/cn/2008/10/iplots-package-for-dynamic-graphics/" title="动态连接图形（iplots包）">动态连接图形（iplots包）</a> (4)</li><li>2008/10/15 -- <a href="http://yihui.name/cn/2008/10/highlighting-points-in-r/" title="R语言打灯笼">R语言打灯笼</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/02/to-zoom-and-pan-r-graphs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>计算Alpha Shape（与K-Means聚类）</title>
		<link>http://yihui.name/cn/2009/02/alpha-shape-and-k-means-clustering/</link>
		<comments>http://yihui.name/cn/2009/02/alpha-shape-and-k-means-clustering/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 07:19:31 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[Alpha Shape]]></category>
		<category><![CDATA[Convex Hull]]></category>
		<category><![CDATA[K-Means聚类]]></category>
		<category><![CDATA[闭包]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=252</guid>
		<description><![CDATA[几天R-help邮件列表中有人问如何计算Alpha Shape（注：Alpha Shape可以看作是闭包Convex Hull的扩展，它可以通过调整Alpha参数计算更精细的“闭包”从而大致描述平面或空间上一群点的外形），我给了一个K-Means聚类的做法：
set.seed(1234)
devAskNewPage(ask = TRUE)
par(pch = 20)
dat = iris[, 1:2]
n = nrow(dat)
for (k in 2:30) {
    ch = integer()
    cl = kmeans(dat, k, 50)$cluster
    plot(dat, main = paste("k =", k))
    for (i in unique(cl)) {
        [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/02/alpha-shape-and-k-means-clustering/"><span class="dropcap-orange">前</span></a>几天<a title="https://stat.ethz.ch/pipermail/r-help/2009-February/188857.html" href="https://stat.ethz.ch/pipermail/r-help/2009-February/188857.html" target="_blank">R-help邮件列表中有人问如何计算Alpha Shape</a>（注：Alpha Shape可以看作是闭包Convex Hull的扩展，它可以通过调整Alpha参数计算更精细的“闭包”从而大致描述平面或空间上一群点的外形），我给了一个K-Means聚类的做法：</p>
<pre>set.seed(1234)
devAskNewPage(ask = TRUE)
par(pch = 20)
dat = iris[, 1:2]
n = nrow(dat)
for (k in 2:30) {
    ch = integer()
    cl = kmeans(dat, k, 50)$cluster
    plot(dat, main = paste("k =", k))
    for (i in unique(cl)) {
        idx = chull(tmp &lt;- dat[cl == i, ])
        ch = c(ch, as.integer(rownames(tmp[idx, ])))
        polygon(tmp[idx, ], border = NA, col = rgb(0, 0, 0, 0.2))
    }
    plot(dat, main = paste("Polygon shape when k =", k))
    polygon(dat[ch, ], col = rgb(0, 0, 0, 0.2))  # need to be ordered
}</pre>
<p>通过选择不同的k，可以逐步描述出点的外形，不过这种方法太粗略，而且最后找出来的多边形的顶点也没有排序，因此不是太好的解决方案。Alpha Shape的算法之一是用某个固定半径的圆去“套”一对一对的点，当一对点都刚好落在圆上而且圆内不包含任何其它点的时候，这两个点就是形状的边界点。通过这样的方法找出所有的边界点，便描述出了Alpha Shape。有兴趣的看官可以把这几句话转化为R代码试试。注意圆的半径是可变的参数，不同的半径对形状的描述精确程度有不同，显然当半径很大时，算法找出的就是闭包。</p>
<p align="center"><img title="Alpha Shape" src="http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/example4.gif" border="0" alt="Alpha Shape" width="232" height="189" /></p>
<p>写出代码的看官请不吝分享一下：）</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2008/01/09 -- <a href="http://yihui.name/cn/2008/01/statistics-cannot-draw-conclusions/" title="统计没有义务下结论">统计没有义务下结论</a> (5)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/02/alpha-shape-and-k-means-clustering/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>小蝌蚪找妈妈、钟形曲线与核密度估计</title>
		<link>http://yihui.name/cn/2009/01/bell-shaped-curve-and-density-estimation/</link>
		<comments>http://yihui.name/cn/2009/01/bell-shaped-curve-and-density-estimation/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 07:56:33 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[核密度估计]]></category>
		<category><![CDATA[正态分布]]></category>
		<category><![CDATA[钟形曲线]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=245</guid>
		<description><![CDATA[眨眼又到12点了，ft。简写一下：Liu M.发来邮件，写了一个中心极限定理的代码，我一看，不对劲（此处省去200字）。不过另一个现象倒是让我颇为吃惊：常数的核密度估计依然是钟形曲线！刚开始我还觉得纳闷，后来转念一想，哦，也对。
不信客官您试试plot(density(rep(0, 1000)))看密度估计图形是啥样的。英文版参见这里：When &#8220;Bell-shaped&#8221; is Far Far Away from Gaussian。
本例要说明的是小学里的道理，不能学小蝌蚪找妈妈，逮着钟形曲线就说正态。
对搞统计的人来说，务必谨慎对待那些经过处理的数据，若有可能，尽量画出原始数据，而不要仅仅给出综合信息。
爷还想看：2009/02/25 -- 正态分布与统计教条主义 (9)2009/02/19 -- 正态分布变量和均匀分布变量分别的累加有什么关系 (4)2008/10/19 -- Java比R更容易表达连续型动画 (2)2007/10/03 -- 自由度与自由 (9)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2009/01/bell-shaped-curve-and-density-estimation/"><span class="dropcap-green">一</span></a>眨眼又到12点了，ft。简写一下：Liu M.发来邮件，写了一个中心极限定理的代码，我一看，不对劲（此处省去200字）。不过另一个现象倒是让我颇为吃惊：常数的核密度估计依然是钟形曲线！刚开始我还觉得纳闷，后来转念一想，哦，也对。</p>
<p>不信客官您试试<code>plot(density(rep(0, 1000)))</code>看密度估计图形是啥样的。英文版参见这里：<a title="http://www.yihui.name/en/post/58.htm" href="../en/post/58.htm" target="_blank">When &#8220;Bell-shaped&#8221; is Far Far Away from Gaussian</a>。</p>
<p>本例要说明的是小学里的道理，不能学小蝌蚪找妈妈，逮着钟形曲线就说正态。</p>
<p>对搞统计的人来说，务必谨慎对待那些经过处理的数据，若有可能，尽量画出原始数据，而不要仅仅给出综合信息。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/02/25 -- <a href="http://yihui.name/cn/2009/02/gaussian-distribution-and-statistical-dogmatism/" title="正态分布与统计教条主义">正态分布与统计教条主义</a> (9)</li><li>2009/02/19 -- <a href="http://yihui.name/cn/2009/02/cumsum-of-normal-var-and-uniform-var/" title="正态分布变量和均匀分布变量分别的累加有什么关系">正态分布变量和均匀分布变量分别的累加有什么关系</a> (4)</li><li>2008/10/19 -- <a href="http://yihui.name/cn/2008/10/java-is-better-than-r-in-animation/" title="Java比R更容易表达连续型动画">Java比R更容易表达连续型动画</a> (2)</li><li>2007/10/03 -- <a href="http://yihui.name/cn/2007/10/degree-of-freedom/" title="自由度与自由">自由度与自由</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2009/01/bell-shaped-curve-and-density-estimation/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>用R赶火车</title>
		<link>http://yihui.name/cn/2008/12/catching-train-with-r/</link>
		<comments>http://yihui.name/cn/2008/12/catching-train-with-r/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 15:50:26 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[会议]]></category>
		<category><![CDATA[有趣的东西]]></category>
		<category><![CDATA[模拟]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=229</guid>
		<description><![CDATA[次R语言会议有位小伙儿很有意思，论文写用R做模拟，然后想到能不能做动画。我拿过来把题目改了，叫“用R赶火车”，如下场景让我想起周星星在大话西游中重复打开月光宝盒，每次跑进山洞都发现紫霞已经自刎了：

类似的还有“用R唱歌”、“用R跳舞”、“用R检验老年痴呆症”等等。不再透露剧情了，不然会议没啥好玩的了。遗憾的是，演讲的人还是少了点。不过很多盆友（无论是小盆友还是大盆友）都很卖力准备这次会议，在此表示俺最深的感谢！
爷还想看：2009/12/04 -- 2009第一场雪和第二届中国R语言会议 (43)2009/02/26 -- 啊（R），辽阔的非洲草原！（一个生态模拟） (12)2008/12/18 -- R语言会议结束之后 (10)2008/12/13 -- 第一届中国R语言会议第一天 (28)2008/10/19 -- Java比R更容易表达连续型动画 (2)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/12/catching-train-with-r/"><span class="dropcap-purple">本</span></a>次R语言会议有位小伙儿很有意思，论文写用R做模拟，然后想到能不能做动画。我拿过来把题目改了，叫“用R赶火车”，如下场景让我想起周星星在大话西游中重复打开月光宝盒，每次跑进山洞都发现紫霞已经自刎了：</p>
<p style="text-align: center;"><object width="500" height="375" data="http://yihui.name/cn/wp-content/uploads/1228491951_0.swf" type="application/x-shockwave-flash"><param name="quality" value="high" /><param name="src" value="http://yihui.name/cn/wp-content/uploads/1228491951_0.swf" /></object></p>
<p>类似的还有“用R唱歌”、“用R跳舞”、“用R检验老年痴呆症”等等。不再透露剧情了，不然会议没啥好玩的了。遗憾的是，演讲的人还是少了点。不过很多盆友（无论是小盆友还是大盆友）都很卖力准备这次会议，在此表示俺最深的感谢！</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li><li>2009/02/26 -- <a href="http://yihui.name/cn/2009/02/ecological-simulation-with-r/" title="啊（R），辽阔的非洲草原！（一个生态模拟）">啊（R），辽阔的非洲草原！（一个生态模拟）</a> (12)</li><li>2008/12/18 -- <a href="http://yihui.name/cn/2008/12/after-the-1st-chinese-r-conference/" title="R语言会议结束之后">R语言会议结束之后</a> (10)</li><li>2008/12/13 -- <a href="http://yihui.name/cn/2008/12/1st-day-of-1st-chinese-r-conference/" title="第一届中国R语言会议第一天">第一届中国R语言会议第一天</a> (28)</li><li>2008/10/19 -- <a href="http://yihui.name/cn/2008/10/java-is-better-than-r-in-animation/" title="Java比R更容易表达连续型动画">Java比R更容易表达连续型动画</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/12/catching-train-with-r/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>SVGAnnotation：从R图形到SVG的（全面）支持</title>
		<link>http://yihui.name/cn/2008/12/svgannotation-from-r-graphics-to-svg/</link>
		<comments>http://yihui.name/cn/2008/12/svgannotation-from-r-graphics-to-svg/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 13:51:20 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[Duncan Temple Lang]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Omegahat]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[R包]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[SVGAnnotation]]></category>
		<category><![CDATA[动画]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=227</guid>
		<description><![CDATA[uncan Temple Lang总是喜欢做一些有趣的东西，这回，他想了个主意，先用Cairo生成SVG图形，然后编辑XML文件，把SVG的那些特性事后加进去，例如图形中的文本标记、超级链接、动画等等。
SVGAnnotation包参见：http://www.omegahat.org/SVGAnnotation/ 
感兴趣的朋友注意使用Firefox浏览示例页面，对于SVG动画，Firefox还不太能支持，尚在努力开发中，所以如果想看动画，还是Opera吧。
爷还想看：2009/12/08 -- 最近跟R core们经常打照面 (9)2008/12/25 -- 金狗宝金狗宝金狗饿了喂 (4)2008/06/11 -- 终于更新完程序包了：animation 1.0-0 (0)2007/11/12 -- 关于动画包接下来要做的几件事情 (4)2007/11/12 -- animation包：人生第一份正式英文作品 (12)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/12/svgannotation-from-r-graphics-to-svg/"><span class="dropcap-none">D</span></a>uncan Temple Lang总是喜欢做一些有趣的东西，这回，他想了个主意，先用Cairo生成SVG图形，然后编辑XML文件，把SVG的那些特性事后加进去，例如图形中的文本标记、超级链接、动画等等。</p>
<p>SVGAnnotation包参见：<a title="http://www.omegahat.org/SVGAnnotation/ " href="http://www.omegahat.org/SVGAnnotation/ " target="_blank">http://www.omegahat.org/SVGAnnotation/ </a></p>
<p>感兴趣的朋友注意使用Firefox浏览示例页面，对于SVG动画，Firefox还不太能支持，尚在努力开发中，所以如果想看动画，还是Opera吧。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2008/12/25 -- <a href="http://yihui.name/cn/2008/12/christmas-and-animation-package/" title="金狗宝金狗宝金狗饿了喂">金狗宝金狗宝金狗饿了喂</a> (4)</li><li>2008/06/11 -- <a href="http://yihui.name/cn/2008/06/animation-1-0-0-updated/" title="终于更新完程序包了：animation 1.0-0">终于更新完程序包了：animation 1.0-0</a> (0)</li><li>2007/11/12 -- <a href="http://yihui.name/cn/2007/11/todo-list-of-the-animation-package/" title="关于动画包接下来要做的几件事情">关于动画包接下来要做的几件事情</a> (4)</li><li>2007/11/12 -- <a href="http://yihui.name/cn/2007/11/1st-version-of-animation-package/" title="animation包：人生第一份正式英文作品">animation包：人生第一份正式英文作品</a> (12)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/12/svgannotation-from-r-graphics-to-svg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>局部加权回归散点平滑图示</title>
		<link>http://yihui.name/cn/2008/12/explore-scatterplot-with-lowess/</link>
		<comments>http://yihui.name/cn/2008/12/explore-scatterplot-with-lowess/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 09:00:48 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[lowess()]]></category>
		<category><![CDATA[回归]]></category>
		<category><![CDATA[局部]]></category>
		<category><![CDATA[局部加权回归散点平滑]]></category>
		<category><![CDATA[散点图]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=225</guid>
		<description><![CDATA[Frank Harrell强调LOWESS的重要性之前，我没有意识到它的作用。从德国回来之后，在John Maindonald的书上再一次看到了用LOWESS观察散点图的例子，这下子才渐渐有了感觉。
统计就是以糟蹋数据为代价获取汇总的信息，这个汇总往往是全局的（global）；统计容易受人诟病的部分原因也在于此。一个均值就能代表全体数据？一条回归直线就能代表两个变量之间的关系？这种怀疑绝对是底气十足的，确实命中了统计糟蹋数据的那一面。因此，我们需要仔细品味数据，局部方法对此便是一种补充。上周在COS主站上发了一篇例子：用局部加权回归散点平滑法观察二维变量之间的关系；感兴趣的客官不妨看一看。
爷还想看：2009/12/26 -- 杯具欣赏：他们眼中的统计学 (13)2009/04/01 -- 这个年代该怎样教统计（或不该怎样教） (8)2008/11/09 -- 有了一元回归为什么还要做多元回归 (2)2008/09/18 -- 回归分析中的交互作用展示 (2)2008/09/02 -- 大家来找茬：这批数据有什么特别之处？（已提供真相） (17)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/12/explore-scatterplot-with-lowess/"><span class="dropcap-grey">在</span></a>Frank Harrell强调LOWESS的重要性之前，我没有意识到它的作用。从德国回来之后，在John Maindonald的书上再一次看到了用LOWESS观察散点图的例子，这下子才渐渐有了感觉。</p>
<p>统计就是以糟蹋数据为代价获取汇总的信息，这个汇总往往是全局的（global）；统计容易受人诟病的部分原因也在于此。一个均值就能代表全体数据？一条回归直线就能代表两个变量之间的关系？这种怀疑绝对是底气十足的，确实命中了统计糟蹋数据的那一面。因此，我们需要仔细品味数据，局部方法对此便是一种补充。上周在COS主站上发了一篇例子：<a title="用局部加权回归散点平滑法观察二维变量之间的关系" href="http://cos.name/2008/11/lowess-to-explore-bivariate-correlation-by-yihui/" target="_blank">用局部加权回归散点平滑法观察二维变量之间的关系</a>；感兴趣的客官不妨看一看。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/12/26 -- <a href="http://yihui.name/cn/2009/12/statistics-in-their-eyes/" title="杯具欣赏：他们眼中的统计学">杯具欣赏：他们眼中的统计学</a> (13)</li><li>2009/04/01 -- <a href="http://yihui.name/cn/2009/04/how-and-what-to-teach-in-statistics/" title="这个年代该怎样教统计（或不该怎样教）">这个年代该怎样教统计（或不该怎样教）</a> (8)</li><li>2008/11/09 -- <a href="http://yihui.name/cn/2008/11/why-use-multiple-regression/" title="有了一元回归为什么还要做多元回归">有了一元回归为什么还要做多元回归</a> (2)</li><li>2008/09/18 -- <a href="http://yihui.name/cn/2008/09/demo-of-interaction-in-regression/" title="回归分析中的交互作用展示">回归分析中的交互作用展示</a> (2)</li><li>2008/09/02 -- <a href="http://yihui.name/cn/2008/09/whats-special-in-this-data/" title="大家来找茬：这批数据有什么特别之处？（已提供真相）">大家来找茬：这批数据有什么特别之处？（已提供真相）</a> (17)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/12/explore-scatterplot-with-lowess/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>小提琴图：展示数据密度分布的工具</title>
		<link>http://yihui.name/cn/2008/10/violin-plot-to-show-density/</link>
		<comments>http://yihui.name/cn/2008/10/violin-plot-to-show-density/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 11:09:12 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[UsingR]]></category>
		<category><![CDATA[小提琴图]]></category>
		<category><![CDATA[统计链接]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=211</guid>
		<description><![CDATA[提琴图没什么特别的，就是把密度估计放在一根对称轴的两边，然后竖起来就可以了。我们可以把它看做箱线图的同伴；箱线图只是展示了分位数的位置，小提琴图展示了任意位置的密度，通过小提琴图我们可以知道哪些位置的密度较高。另外，我们也可以把多个小提琴放在一起比较。如下图：
所用函数simple.violinplot()来自于UsingR包，不过它没有提供填充不同颜色的功能，上图是我修改了源代码之后作出来的。问题来自于Adelaide大学的Fernando Marmolejo Ramos，他在R-help里面问了没人回答，所以就给我私人Email了。
不多写了，不然到时候书卖不出去了。
爷还想看：2010/01/05 -- t检验方差不齐有多重要 (6)2009/12/08 -- 最近跟R core们经常打照面 (9)2009/12/04 -- 2009第一场雪和第二届中国R语言会议 (43)2009/10/10 -- R的第五万次SVN修改：看看R大佬们的工作时间分布 (9)2009/06/10 -- 用R语言和Flash以及JavaScript生成标签云 (7)]]></description>
			<content:encoded><![CDATA[<a href="http://yihui.name/cn/2008/10/violin-plot-to-show-density/"><span class="dropcap-purple">小</span></a>提琴图没什么特别的，就是把密度估计放在一根对称轴的两边，然后竖起来就可以了。我们可以把它看做箱线图的同伴；箱线图只是展示了分位数的位置，小提琴图展示了任意位置的密度，通过小提琴图我们可以知道哪些位置的密度较高。另外，我们也可以把多个小提琴放在一起比较。如下图：</p>
<p><div class="wp-caption aligncenter" style="width: 490px"><a href="http://yihui.name/cn/wp-content/uploads/1225451082_0.png"><img style="border: 0pt none;" title="小提琴图；Violin Plot" src="http://yihui.name/cn/wp-content/uploads/1225451082_0.png" border="0" alt="小提琴图；Violin Plot" width="480" height="480" /></a><p class="wp-caption-text">小提琴图；Violin Plot</p></div>
<p>所用函数<code>simple.violinplot()</code>来自于UsingR包，不过它没有提供填充不同颜色的功能，上图是我修改了源代码之后作出来的。问题来自于Adelaide大学的Fernando Marmolejo Ramos，他在R-help里面问了没人回答，所以就给我私人Email了。</p>
<p>不多写了，不然到时候书卖不出去了。</p>
<span class="download">下载源代码：<a href="http://yihui.name/cn/wp-content/uploads/2008/10/violin.colors.txt">violin.colors.txt</a></span>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li><li>2009/10/10 -- <a href="http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/" title="R的第五万次SVN修改：看看R大佬们的工作时间分布">R的第五万次SVN修改：看看R大佬们的工作时间分布</a> (9)</li><li>2009/06/10 -- <a href="http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/" title="用R语言和Flash以及JavaScript生成标签云">用R语言和Flash以及JavaScript生成标签云</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/violin-plot-to-show-density/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>人的世界是连续的，计算机的世界是离散的</title>
		<link>http://yihui.name/cn/2008/10/continuous-human-world-and-discrete-computer-world/</link>
		<comments>http://yihui.name/cn/2008/10/continuous-human-world-and-discrete-computer-world/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 09:51:40 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[R图形]]></category>
		<category><![CDATA[多边形]]></category>
		<category><![CDATA[密度函数]]></category>
		<category><![CDATA[离散]]></category>
		<category><![CDATA[连续]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=208</guid>
		<description><![CDATA[统计的经常涉及到在分布函数或密度函数表示概率，例如将P(X&#60;x)的区域涂色，这用多边形很容易办到。有人可能不理解，密度函数不是光滑的么，多边形的边不光滑，怎么能填充我们需要的区域？须知数学和现实往往有差距，数学中存在连续、光滑的概念，计算机中（目前）是无法精确表达这些概念的，而且很多情况下没有必要，例如图形中就没必要取遍一段区间上的所有实数再画图，这本来也是不可能的，因此只需要近似就够了。
以下三幅图说明了这个近似的过程：第一幅图看起来很光滑很强大；第二幅图和第一幅图完全相同，只是把作图用到的数据点标了出来——实际上只用了[-3, 3]区间上的100个点；第三附图只用了10个点，图穷匕首见。
  
文件下载链接
#png("polygon%d-s.png", width = 500, height = 500)
par(mar = c(2, 2, 0.1, 0.1), las = 1, mgp = c(3, 0.5, 0), tcl = -0.3)
x1 = seq(-3, 3, length = 100)
plot(x1, dnorm(x1), type = "n")
polygon(c(x1[1], x1[1:80], x1[80]), c(0, dnorm(x1[1:80]), 0), col = "gray", border = NA)
lines(x1, dnorm(x1)) 

plot(x1, dnorm(x1), type = "n")
polygon(c(x1[1], x1[1:80], x1[80]), [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/continuous-human-world-and-discrete-computer-world/"><span class="dropcap-purple">做</span></a>统计的经常涉及到在分布函数或密度函数表示概率，例如将P(X&lt;x)的区域涂色，这用多边形很容易办到。有人可能不理解，密度函数不是光滑的么，多边形的边不光滑，怎么能填充我们需要的区域？须知数学和现实往往有差距，数学中存在连续、光滑的概念，计算机中（目前）是无法精确表达这些概念的，而且很多情况下没有必要，例如图形中就没必要取遍一段区间上的所有实数再画图，这本来也是不可能的，因此只需要近似就够了。</p>
<p>以下三幅图说明了这个近似的过程：第一幅图看起来很光滑很强大；第二幅图和第一幅图完全相同，只是把作图用到的数据点标了出来——实际上只用了[-3, 3]区间上的100个点；第三附图只用了10个点，图穷匕首见。</p>
<p align="center"><a title="很光滑很强大" rel="lightbox[polygon]" href="http://yihui.name/cn/wp-content/uploads/1225359439_1.png"><img src="http://yihui.name/cn/wp-content/uploads/1225359439_0.png" border="0" alt="" /></a> <a title="所谓光滑图形背后的100个点" rel="lightbox[polygon]" href="http://yihui.name/cn/wp-content/uploads/1225359455_1.png"><img src="http://yihui.name/cn/wp-content/uploads/1225359455_0.png" border="0" alt="" /></a> <a title="10个点构成的曲线图" rel="lightbox[polygon]" href="http://yihui.name/cn/wp-content/uploads/1225359466_1.png"><img src="http://yihui.name/cn/wp-content/uploads/1225359466_0.png" border="0" alt="" /></a></p>
<p><a href="http://yihui.name/cn/wp-content/uploads//1225360236_0.r">文件下载链接</a></p>
<pre>#png("polygon%d-s.png", width = 500, height = 500)
par(mar = c(2, 2, 0.1, 0.1), las = 1, mgp = c(3, 0.5, 0), tcl = -0.3)
x1 = seq(-3, 3, length = 100)
plot(x1, dnorm(x1), type = "n")
polygon(c(x1[1], x1[1:80], x1[80]), c(0, dnorm(x1[1:80]), 0), col = "gray", border = NA)
lines(x1, dnorm(x1)) 

plot(x1, dnorm(x1), type = "n")
polygon(c(x1[1], x1[1:80], x1[80]), c(0, dnorm(x1[1:80]), 0), col = "gray", border = NA)
lines(x1, dnorm(x1),type='o',pch=20) 

x2 = seq(-3, 3, length = 10)
plot(x2, dnorm(x2), type = "n")
polygon(c(x2[1], x2[1:8], x2[8]), c(0, dnorm(x2[1:8]), 0), col = "gray", border = NA)
lines(x2, dnorm(x2),type='o',pch=20)
#dev.off()</pre>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2007/10/08 -- <a href="http://yihui.name/cn/2007/10/explain-statistics-with-animations/" title="将统计学的概念、方法和模型融入动画中">将统计学的概念、方法和模型融入动画中</a> (2)</li><li>2007/09/15 -- <a href="http://yihui.name/cn/2007/09/china-map-at-province-level/" title="终于搞定了中国分省市地图">终于搞定了中国分省市地图</a> (40)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/continuous-human-world-and-discrete-computer-world/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>几何级数增长应该怎样用图形表达</title>
		<link>http://yihui.name/cn/2008/10/demonstrate-geometric-growth-in-graphics/</link>
		<comments>http://yihui.name/cn/2008/10/demonstrate-geometric-growth-in-graphics/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 15:20:52 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[统计计算]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[几何级数增长]]></category>
		<category><![CDATA[对数]]></category>
		<category><![CDATA[指数增长]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=206</guid>
		<description><![CDATA[日在北大听史密斯商学院创业大赛报告，其中有一位参赛者幻灯片中提到了他们的用户数这几年呈几何级数增长，并拿用户数和时间作了一幅图，图中线条呈现出增长越来越快的趋势，其实这种做法有糊弄之嫌——增长越来越快的并不一定是几何级数增长方式。例如y=sin(x)+1在区间上增长也是越来越快，但它并非几何级数。
表达几何级数增长（或者指数增长）的方式一般是对y取对数，然后与x作图，看图形是否呈一条直线：若log(y)=a*x+b，那么显然是指数增长方式。人眼观察直线比观察曲线要容易得多，因此这种方法比用原始数据作图要更容易表达“几何级数增长”。下图左边为原始数据，右边为y轴取对数后的图形。R中处理起来非常简单，作图时添加参数log即可（可以对x轴或y轴或者同时取对数）。

文件下载链接
#png("exp_growth.png", width = 600, height = 500)
options(scipen = 5)
x = seq(1.51 * pi, 2 * pi, length = 100)
par(mfrow = c(2, 2), pch = 20, mar = c(5, 6, 1, 0.1),
    col = rgb(0, 0, 0, 0.5), las = 1, mgp = c(4, 1, 0))
plot(x, sin(x) + 1)
plot(x, sin(x) + 1, log [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/demonstrate-geometric-growth-in-graphics/"><span class="dropcap">今</span></a>日在北大听史密斯商学院创业大赛报告，其中有一位参赛者幻灯片中提到了他们的用户数这几年呈几何级数增长，并拿用户数和时间作了一幅图，图中线条呈现出增长越来越快的趋势，其实这种做法有糊弄之嫌——增长越来越快的并不一定是几何级数增长方式。例如y=sin(x)+1在<img src="http://www.forkosh.dreamhost.com/mimetex.cgi?\normalsize %5B1.5%5Cpi%2C%202%5Cpi%5D" title="[1.5\pi, 2\pi]" alt="[1.5\pi, 2\pi]" align="absmiddle" class="math" />区间上增长也是越来越快，但它并非几何级数。</p>
<p>表达几何级数增长（或者指数增长）的方式一般是对y取对数，然后与x作图，看图形是否呈一条直线：若log(y)=a*x+b，那么显然是指数增长方式。人眼观察直线比观察曲线要容易得多，因此这种方法比用原始数据作图要更容易表达“几何级数增长”。下图左边为原始数据，右边为y轴取对数后的图形。R中处理起来非常简单，作图时添加参数log即可（可以对x轴或y轴或者同时取对数）。</p>
<p align="center"><img title="指数增长的图示方法" src="http://yihui.name/cn/wp-content/uploads/1225293431_0.png" border="0" alt="指数增长的图示方法" /></p>
<p><a href="http://yihui.name/cn/wp-content/uploads//1225293485_0.r">文件下载链接</a></p>
<pre>#png("exp_growth.png", width = 600, height = 500)
options(scipen = 5)
x = seq(1.51 * pi, 2 * pi, length = 100)
par(mfrow = c(2, 2), pch = 20, mar = c(5, 6, 1, 0.1),
    col = rgb(0, 0, 0, 0.5), las = 1, mgp = c(4, 1, 0))
plot(x, sin(x) + 1)
plot(x, sin(x) + 1, log = "y")
plot(x, exp(x))
plot(x, exp(x), log = "y")
#dev.off()</pre>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li><li>2009/10/10 -- <a href="http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/" title="R的第五万次SVN修改：看看R大佬们的工作时间分布">R的第五万次SVN修改：看看R大佬们的工作时间分布</a> (9)</li><li>2009/06/10 -- <a href="http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/" title="用R语言和Flash以及JavaScript生成标签云">用R语言和Flash以及JavaScript生成标签云</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/demonstrate-geometric-growth-in-graphics/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>送给Felix的一万天“生日”小礼</title>
		<link>http://yihui.name/cn/2008/10/birthday-present-to-felix-andrews/</link>
		<comments>http://yihui.name/cn/2008/10/birthday-present-to-felix-andrews/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 06:19:23 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[Felix Andrews]]></category>
		<category><![CDATA[playwith]]></category>
		<category><![CDATA[rgl]]></category>
		<category><![CDATA[生日]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=205</guid>
		<description><![CDATA[说上周请Felix过来作报告，结果最后只有三四个人来听。Felix生于1981年6月6日，报告那天是10月22日，用R计算一下时间差，刚好是一万天，所以他第一张幻灯片就说“我活了一万天了”，有意思。晚上吃饭，他说如果过生日的话得要一万根蜡烛，后来我回到电脑前想，何不把蜡烛藏在数据中让他用他自己的R包去探索呢？于是就有了下面的老套故事：

&#8220;Candle&#8221; in the points from Yihui Xie on Vimeo.
这是他用playwith包给我的答案：

爷还想看：2008/10/13 -- 开始邀请R Core成员投稿 (2)2009/05/31 -- 第一期The R Journal和第一届中国R语言会议 (9)2008/11/09 -- 去了一趟澳大利亚 (8)2008/10/16 -- POLLEN数据：散点图中藏数据的历史名案 (0)2008/10/11 -- rgl英勇奖 (9)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/birthday-present-to-felix-andrews/"><span class="dropcap-purple">话</span></a>说上周请<a title="http://nfrac.org/felix/cv.html" href="http://nfrac.org/felix/cv.html" target="_blank">Felix</a>过来作报告，结果最后只有三四个人来听。Felix生于1981年6月6日，报告那天是10月22日，用R计算一下时间差，刚好是一万天，所以他第一张幻灯片就说“我活了一万天了”，有意思。晚上吃饭，他说如果过生日的话得要一万根蜡烛，后来我回到电脑前想，何不把蜡烛藏在数据中让他用他自己的R包去探索呢？于是就有了下面的老套故事：</p>
<div style="text-align: center;"><object width="500" height="500" data="http://vimeo.com/moogaloop.swf?clip_id=2077814&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=2077814&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/2077814?pg=embed&amp;sec=2077814">&#8220;Candle&#8221; in the points</a> from <a href="http://vimeo.com/yihui?pg=embed&amp;sec=2077814">Yihui Xie</a> on Vimeo.</div>
<p>这是他用playwith包给我的答案：</p>
<p align="center"><img title="数据中隐藏的“蜡烛”" src="http://yihui.name/cn/wp-content/uploads/1225088301_0.png" border="0" alt="数据中隐藏的“蜡烛”" /></p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2008/10/13 -- <a href="http://yihui.name/cn/2008/10/inviting-r-core-members/" title="开始邀请R Core成员投稿">开始邀请R Core成员投稿</a> (2)</li><li>2009/05/31 -- <a href="http://yihui.name/cn/2009/05/1st-volume-the-r-journal-and-1st-chinese-r-conference/" title="第一期The R Journal和第一届中国R语言会议">第一期The R Journal和第一届中国R语言会议</a> (9)</li><li>2008/11/09 -- <a href="http://yihui.name/cn/2008/11/going-to-australia/" title="去了一趟澳大利亚">去了一趟澳大利亚</a> (8)</li><li>2008/10/16 -- <a href="http://yihui.name/cn/2008/10/historical-demo-of-pollen-data/" title="POLLEN数据：散点图中藏数据的历史名案">POLLEN数据：散点图中藏数据的历史名案</a> (0)</li><li>2008/10/11 -- <a href="http://yihui.name/cn/2008/10/rgl-medal-of-valor/" title="rgl英勇奖">rgl英勇奖</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/birthday-present-to-felix-andrews/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>为什么汇总的数据不能说明问题</title>
		<link>http://yihui.name/cn/2008/10/useless-aggregated-data/</link>
		<comments>http://yihui.name/cn/2008/10/useless-aggregated-data/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 06:42:20 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[数据分析]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[COS论坛]]></category>
		<category><![CDATA[汇总数据]]></category>
		<category><![CDATA[统计之都]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=201</guid>
		<description><![CDATA[天13点左右COS论坛的注册人数显示为83778人，我看了一下会员列表，发现一个特征，凡是填了个人主页一栏的几乎都是广告，而且都是一家广告（推广小助手），我就不写网址了，免得帮这帮无耻之徒做了广告。
当我删掉主页中包含这个网址的会员之后，剩下的会员是65123人，这两年来他们竟然注册了近两万机器人。
如果再去掉近35000没有激活的用户，COS真实用户数大约为三万人。

乍一看，哇，八万大军，砍掉两万机器人，再砍掉没有激活的，只有36%的用户是可能真实的，里面当然还有机器人，只是目前还没有发现他们的特征。三万大军，意味着平均每天有30个活人注册，也不错了。
俗话说：数据一汇总，上帝就发笑。
R代码仅供图形初学者参考：
文件下载链接
# png("users.png", width = 500, height = 200)
par(mar = c(2, 0.1, 0.1, 0.1))
x = c(83778, 65123, 30000)
plot(x, 1:3, type = "n", xaxt = "n", yaxt = "n", xlim = c(0,
    max(x)), ylim = c(0, 4), ylab = "", xlab = "", bty = "n")
axis(1, c(0, x))
s = 0.4
rect(c(0, 0, x[3]), c(2 - [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/useless-aggregated-data/"><span class="dropcap-orange">今</span></a>天13点左右<a title="http://www.cos.name/bbs" href="http://www.cos.name/bbs" target="_blank">COS论坛</a>的注册人数显示为83778人，我看了一下会员列表，发现一个特征，凡是填了个人主页一栏的几乎都是广告，而且都是一家广告（推广小助手），我就不写网址了，免得帮这帮无耻之徒做了广告。</p>
<p>当我删掉主页中包含这个网址的会员之后，剩下的会员是65123人，这两年来他们竟然注册了近两万机器人。</p>
<p>如果再去掉近35000没有激活的用户，COS真实用户数大约为三万人。</p>
<p align="center"><img src="http://yihui.name/cn/wp-content/uploads/1224571035_0.png" border="0" alt="" /></p>
<p>乍一看，哇，八万大军，砍掉两万机器人，再砍掉没有激活的，只有36%的用户是可能真实的，里面当然还有机器人，只是目前还没有发现他们的特征。三万大军，意味着平均每天有30个活人注册，也不错了。</p>
<p>俗话说：数据一汇总，上帝就发笑。</p>
<p>R代码仅供图形初学者参考：</p>
<p><a href="http://yihui.name/cn/wp-content/uploads//1224572162_0.r">文件下载链接</a></p>
<pre># png("users.png", width = 500, height = 200)
par(mar = c(2, 0.1, 0.1, 0.1))
x = c(83778, 65123, 30000)
plot(x, 1:3, type = "n", xaxt = "n", yaxt = "n", xlim = c(0,
    max(x)), ylim = c(0, 4), ylab = "", xlab = "", bty = "n")
axis(1, c(0, x))
s = 0.4
rect(c(0, 0, x[3]), c(2 - s, 3 - s, 3 - s), c(x[3],
    x[3], x[2]), c(2 + s, 3 + s, 3 + s), lty = 3, border = c("green",
    "green", "blue"))
rect(c(0, x[3], x[2]), (1:3) - s, rev(x), (1:3) +
    s, col = c("green", "blue", "red"))
text(c(x[3], x[3] + x[2], x[2] + x[1])/2, 1:3, c("normal users",
    "spammers or confused users", "an ad spammer"), col = "yellow")
text(c(x[3], x[3] + x[2])/2, c(2, 3), paste(round(100 *
    c(x[3], x[2] - x[3])/x[1], 2), "%", sep = ""))
# dev.off()</pre>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/04/10 -- <a href="http://yihui.name/cn/2010/04/no-advertisement/" title="不宣传，就是不宣传">不宣传，就是不宣传</a> (17)</li><li>2010/03/17 -- <a href="http://yihui.name/cn/2010/03/feel-charmed-etc/" title="蓬荜生辉及其它">蓬荜生辉及其它</a> (16)</li><li>2010/02/02 -- <a href="http://yihui.name/cn/2010/02/a-big-thank-you-to-linlin-yan/" title="特别致谢颜林林对COS的贡献">特别致谢颜林林对COS的贡献</a> (6)</li><li>2009/12/31 -- <a href="http://yihui.name/cn/2009/12/cos-in-2010/" title="统计之都新年构想（杂碎篇）">统计之都新年构想（杂碎篇）</a> (33)</li><li>2009/04/23 -- <a href="http://yihui.name/cn/2009/04/complicated-cos-forum/" title="新论坛太复杂了">新论坛太复杂了</a> (5)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/useless-aggregated-data/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>动态连接图形（iplots包）</title>
		<link>http://yihui.name/cn/2008/10/iplots-package-for-dynamic-graphics/</link>
		<comments>http://yihui.name/cn/2008/10/iplots-package-for-dynamic-graphics/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 15:56:22 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[程序开发]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[iplots]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[动态图形]]></category>
		<category><![CDATA[连接]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=200</guid>
		<description><![CDATA[同一批数据作出的若干种图形在屏幕铺开时，连接的作用是很明显的：对一幅图形进行操作（如选择数据区域）时，其他图形会根据这幅图形上的操作相应更新，这样我们可以任意查看局部数据的性质。iplots是R里面基于Java写的一个程序包，感兴趣的看示例就行了。这里要提的是饼图：由于iplots没有给出饼图函数，所以这些动态更新的图形中不会有饼图，不过iplots提供的一些低层函数足够我们利用R自身的饼图函数pie()来实现这种功能了。以下是我的一个示例（可能有bug！）：
文件下载链接
library(iplots)
cat("Select 'Break' from the menu of any plot to return back to R.\n")
set.seed(1)
dat = data.frame(x = rep(1:4, c(50, 100, 150, 80)),
    y = sample(rep(1:6, c(150, 50, 30, 70, 10, 70))))
ibar(dat$x)
while (!is.null(ievent.wait())) {
    if (iset.sel.changed()) {
        s &#60;- iset.selected()
     [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/iplots-package-for-dynamic-graphics/"><span class="dropcap-red">用</span></a>同一批数据作出的若干种图形在屏幕铺开时，连接的作用是很明显的：对一幅图形进行操作（如选择数据区域）时，其他图形会根据这幅图形上的操作相应更新，这样我们可以任意查看局部数据的性质。iplots是R里面基于Java写的一个程序包，感兴趣的看示例就行了。这里要提的是饼图：由于iplots没有给出饼图函数，所以这些动态更新的图形中不会有饼图，不过iplots提供的一些低层函数足够我们利用R自身的饼图函数pie()来实现这种功能了。以下是我的一个示例（可能有bug！）：</p>
<p><a href="http://yihui.name/cn/wp-content/uploads//1224518043_0.r">文件下载链接</a></p>
<pre>library(iplots)
cat("Select 'Break' from the menu of any plot to return back to R.\n")
set.seed(1)
dat = data.frame(x = rep(1:4, c(50, 100, 150, 80)),
    y = sample(rep(1:6, c(150, 50, 30, 70, 10, 70))))
ibar(dat$x)
while (!is.null(ievent.wait())) {
    if (iset.sel.changed()) {
        s &lt;- iset.selected()
        if (length(s) &gt; 1)
            pie(table(dat$y[s]))
    }
}</pre>
<p>我估计Simon他们是故意不写饼图函数的，因为统计学家一般不推荐使用饼图——人们对角度感知太差，不如用长度或高度。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li><li>2009/10/10 -- <a href="http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/" title="R的第五万次SVN修改：看看R大佬们的工作时间分布">R的第五万次SVN修改：看看R大佬们的工作时间分布</a> (9)</li><li>2009/06/10 -- <a href="http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/" title="用R语言和Flash以及JavaScript生成标签云">用R语言和Flash以及JavaScript生成标签云</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/iplots-package-for-dynamic-graphics/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Java比R更容易表达连续型动画</title>
		<link>http://yihui.name/cn/2008/10/java-is-better-than-r-in-animation/</link>
		<comments>http://yihui.name/cn/2008/10/java-is-better-than-r-in-animation/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 12:55:33 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[Roger Koenker]]></category>
		<category><![CDATA[动画]]></category>
		<category><![CDATA[模拟]]></category>
		<category><![CDATA[正态分布]]></category>
		<category><![CDATA[高尔顿板]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=197</guid>
		<description><![CDATA[说我做动画的难题之一就是不容易做连续型动画，即连续表示元素的运动。今天在看高尔顿板的模拟时，突然意识到，这类问题应该交给Java去解决，而不要在R里面纠缠了。不过由于不太会用Java画图，所以只好继续凑合着用R了，下面是一个初步的模拟：

这个模拟目前已经放到AniWiki中（链接）；看了维基百科，原来高尔顿板又称豌豆机器。本豌豆机器的启发来自于Roger Koenker提供的一个原型。
爷还想看：2009/04/24 -- 本小子还真中了John Chambers软件奖 (20)2009/02/26 -- 啊（R），辽阔的非洲草原！（一个生态模拟） (12)2009/02/19 -- 正态分布变量和均匀分布变量分别的累加有什么关系 (4)2009/02/18 -- R社区实现了共产主义…… (0)2008/12/05 -- 用R赶火车 (9)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/java-is-better-than-r-in-animation/"><span class="dropcap-grey">话</span></a>说我做动画的难题之一就是不容易做连续型动画，即连续表示元素的运动。今天在看<a title="http://www.ms.uky.edu/~mai/java/stat/GaltonMachine.html" href="http://www.ms.uky.edu/~mai/java/stat/GaltonMachine.html" target="_blank">高尔顿板的模拟</a>时，突然意识到，这类问题应该交给Java去解决，而不要在R里面纠缠了。不过由于不太会用Java画图，所以只好继续凑合着用R了，下面是一个初步的模拟：</p>
<p align="center"><img src="http://yihui.name/cn/wp-content/uploads/1224431682_0.gif" border="0" alt="" /></p>
<p>这个模拟目前已经放到<a title="AniWiki" href="http://animation.yihui.name" target="_blank">AniWiki</a>中（<a title="http://animation.yihui.name/prob:bean_machine" href="http://animation.yihui.name/prob:bean_machine" target="_blank">链接</a>）；看了维基百科，原来高尔顿板又称豌豆机器。本豌豆机器的启发来自于Roger Koenker提供的一个<a title="http://www.econ.uiuc.edu/~roger/courses/476/routines/quincunx.R" href="http://www.econ.uiuc.edu/~roger/courses/476/routines/quincunx.R" target="_blank">原型</a>。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/04/24 -- <a href="http://yihui.name/cn/2009/04/won-john-chambers-award/" title="本小子还真中了John Chambers软件奖">本小子还真中了John Chambers软件奖</a> (20)</li><li>2009/02/26 -- <a href="http://yihui.name/cn/2009/02/ecological-simulation-with-r/" title="啊（R），辽阔的非洲草原！（一个生态模拟）">啊（R），辽阔的非洲草原！（一个生态模拟）</a> (12)</li><li>2009/02/19 -- <a href="http://yihui.name/cn/2009/02/cumsum-of-normal-var-and-uniform-var/" title="正态分布变量和均匀分布变量分别的累加有什么关系">正态分布变量和均匀分布变量分别的累加有什么关系</a> (4)</li><li>2009/02/18 -- <a href="http://yihui.name/cn/2009/02/communism-in-r-community/" title="R社区实现了共产主义……">R社区实现了共产主义……</a> (0)</li><li>2008/12/05 -- <a href="http://yihui.name/cn/2008/12/catching-train-with-r/" title="用R赶火车">用R赶火车</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/java-is-better-than-r-in-animation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>POLLEN数据：散点图中藏数据的历史名案</title>
		<link>http://yihui.name/cn/2008/10/historical-demo-of-pollen-data/</link>
		<comments>http://yihui.name/cn/2008/10/historical-demo-of-pollen-data/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 12:14:10 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[pollen]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[rgl]]></category>
		<category><![CDATA[三维图形]]></category>
		<category><![CDATA[图穷匕首见]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=196</guid>
		<description><![CDATA[天看Simon他们的iplots主页，突然注意到里面α-Channel小节中有pollen数据的展示，话说九月初我曾经造过一个类似的例子，当时本来是想用这笔数据的，但是由于实在想不起来名字，也就没找到，只好自己编了一批数据。
有位叫David Coleman的老兄在1986年某一天等人的时候随便找了几个字母的坐标表示，然后扔到一大堆随机数中藏起来，后来成了ASA Data Expo的名数据。这里是我用rgl包作出的探索示例：

Letters &#8220;EUREKA&#8221; in POLLEN data (using OpenGL) from Yihui Xie on Vimeo.
图穷“匕首”见。
爷还想看：2008/10/11 -- rgl英勇奖 (9)2010/01/05 -- t检验方差不齐有多重要 (6)2009/12/08 -- 最近跟R core们经常打照面 (9)2009/12/04 -- 2009第一场雪和第二届中国R语言会议 (43)2009/10/10 -- R的第五万次SVN修改：看看R大佬们的工作时间分布 (9)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/historical-demo-of-pollen-data/"><span class="dropcap-purple">今</span></a>天看Simon他们的<a title="http://www.iplots.org/" href="http://www.iplots.org/" target="_blank">iplots</a>主页，突然注意到里面α-Channel小节中有<a title="http://stat.cmu.edu/datasets/pollen.data" href="http://stat.cmu.edu/datasets/pollen.data" target="_blank">pollen数据</a>的展示，话说九月初我曾经造过一个类似的例子，当时本来是想用这笔数据的，但是由于实在想不起来名字，也就没找到，只好自己编了一批数据。</p>
<p>有位叫David Coleman的老兄在1986年某一天等人的时候随便找了几个字母的坐标表示，然后扔到一大堆随机数中藏起来，后来成了ASA Data Expo的名数据。这里是我用rgl包作出的探索示例：</p>
<div style="text-align: center;"><object width="500" height="500" data="http://vimeo.com/moogaloop.swf?clip_id=1982725&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1982725&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/1982725?pg=embed&amp;sec=1982725">Letters &#8220;EUREKA&#8221; in POLLEN data (using OpenGL)</a> from <a href="http://vimeo.com/user728417?pg=embed&amp;sec=1982725">Yihui Xie</a> on <a href="http://vimeo.com?pg=embed&amp;sec=1982725">Vimeo</a>.</div>
<p>图穷“匕首”见。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2008/10/11 -- <a href="http://yihui.name/cn/2008/10/rgl-medal-of-valor/" title="rgl英勇奖">rgl英勇奖</a> (9)</li><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li><li>2009/10/10 -- <a href="http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/" title="R的第五万次SVN修改：看看R大佬们的工作时间分布">R的第五万次SVN修改：看看R大佬们的工作时间分布</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/historical-demo-of-pollen-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>避免文本标签重叠：maptools中的pointLabel()</title>
		<link>http://yihui.name/cn/2008/10/avoid-label-overlap-pointlabel-in-maptools/</link>
		<comments>http://yihui.name/cn/2008/10/avoid-label-overlap-pointlabel-in-maptools/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 15:51:48 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[maptools]]></category>
		<category><![CDATA[plotrix]]></category>
		<category><![CDATA[pointLabel()]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[thigmophobe.labels()]]></category>
		<category><![CDATA[图形]]></category>
		<category><![CDATA[文本标签]]></category>
		<category><![CDATA[模拟退火算法]]></category>
		<category><![CDATA[遗传算法]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=192</guid>
		<description><![CDATA[aptools包中的pointLabel()可以利用模拟退火算法或者遗传算法来解决图中文本标签的重叠问题。R本身提供了度量文本高度和宽度的函数strwidth()和strheight()，因此标签的放置问题本质上就是一个最优化问题，目标函数是标签所占矩形之间重叠面积之和，参数是标签的摆放位置（例如矩形的顶点坐标），问题就是求得参数使目标函数最小化。pointLabel()采用了模拟退火算法和遗传算法，另外，plotrix包中的thigmophobe.labels()利用简单的距离计算可以得出标签摆在点的下、左、上、右哪一面可以使得重叠最小化。以下是前面“用R画中国地图并标注城市位置”一文中曾经用到的例子，这里我们用pointLabel()添加标签：

相比之下，thigmophobe.labels()的功能就差一些了：

爷还想看：2010/01/05 -- t检验方差不齐有多重要 (6)2009/12/08 -- 最近跟R core们经常打照面 (9)2009/12/04 -- 2009第一场雪和第二届中国R语言会议 (43)2009/10/10 -- R的第五万次SVN修改：看看R大佬们的工作时间分布 (9)2009/06/10 -- 用R语言和Flash以及JavaScript生成标签云 (7)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/avoid-label-overlap-pointlabel-in-maptools/"><span class="dropcap-grey">m</span></a><strong><code>aptools</code></strong>包中的<code>pointLabel()</code>可以利用模拟退火算法或者遗传算法来解决图中文本标签的重叠问题。R本身提供了度量文本高度和宽度的函数<code>strwidth()</code>和<code>strheight()</code>，因此标签的放置问题本质上就是一个最优化问题，目标函数是标签所占矩形之间重叠面积之和，参数是标签的摆放位置（例如矩形的顶点坐标），问题就是求得参数使目标函数最小化。<code>pointLabel()</code>采用了模拟退火算法和遗传算法，另外，<strong><code>plotrix</code></strong>包中的<code>thigmophobe.labels()</code>利用简单的距离计算可以得出标签摆在点的下、左、上、右哪一面可以使得重叠最小化。以下是前面“<a title="用R画中国地图并标注城市位置" href="http://yihui.name/cn/2008/10/china-map-and-city-locations-with-r" target="_blank">用R画中国地图并标注城市位置</a>”一文中曾经用到的例子，这里我们用<code>pointLabel()</code>添加标签：</p>
<p align="center"><img title="maptools中的pointLabel()添加文本标签" src="http://yihui.name/cn/wp-content/uploads/1223875496_0.png" border="0" alt="maptools中的pointLabel()添加文本标签" /></p>
<p>相比之下，<code>thigmophobe.labels()</code>的功能就差一些了：</p>
<p align="center"><img title="plotrix中的thigmophobe.labels()添加文本标签" src="http://yihui.name/cn/wp-content/uploads/1223876858_1.png" border="0" alt="plotrix中的thigmophobe.labels()添加文本标签" /></p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2009/12/04 -- <a href="http://yihui.name/cn/2009/12/snow-in-ames-and-2nd-chinese-r-conference/" title="2009第一场雪和第二届中国R语言会议">2009第一场雪和第二届中国R语言会议</a> (43)</li><li>2009/10/10 -- <a href="http://yihui.name/cn/2009/10/50000-revisions-committed-to-r/" title="R的第五万次SVN修改：看看R大佬们的工作时间分布">R的第五万次SVN修改：看看R大佬们的工作时间分布</a> (9)</li><li>2009/06/10 -- <a href="http://yihui.name/cn/2009/06/creating-tag-cloud-using-r-and-flash-javascript/" title="用R语言和Flash以及JavaScript生成标签云">用R语言和Flash以及JavaScript生成标签云</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/avoid-label-overlap-pointlabel-in-maptools/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>rgl英勇奖</title>
		<link>http://yihui.name/cn/2008/10/rgl-medal-of-valor/</link>
		<comments>http://yihui.name/cn/2008/10/rgl-medal-of-valor/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 10:45:24 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[Michael Friendly]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[R-forge]]></category>
		<category><![CDATA[rgl]]></category>
		<category><![CDATA[rgl英勇奖]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=190</guid>
		<description><![CDATA[说近日Michael Friendly老爷子很郁闷，因为从R-forge上下载的rgl包中rgl.snapshot()函数不能用了，老是说&#8221;failed&#8221;，不能保存图形。我也遇到了同样的问题，不过后来Duncan提供了一个新的下载地址，我下载之后发现可以用了，于是回了个邮件说问题解决了、表示感谢。今天Michael老爷子很高兴，给我回邮件说谢谢益辉同学啊，我还以为我自己的电脑坏掉了呢，寡人对你的大无畏测试精神很是感激，特授予你“rgl英勇奖”！（这里是颁奖现场）
&#8230;and your test helped me slay the fear that something had gone horribly wrong with my desktop PC. ?I award you the rgl Medal of Valor.  &#8230;
Michael是统计图形届的大牛，获此口头奖章本小子也很是高兴。后来他另写一封邮件说，小贼（第一声），大爷受你在不莱梅演讲的启发，近日也开始玩动画了。
话说回来，rgl这个包牵涉到大量的C和C++代码，还有png库，编译起来很麻烦，R-forge的环境可能不能成功编译，所以那上面的rgl包会有问题，我还奇怪为什么它没有编译日志呢。
爷还想看：2008/10/16 -- POLLEN数据：散点图中藏数据的历史名案 (0)2009/12/08 -- 最近跟R core们经常打照面 (9)2008/10/27 -- 送给Felix的一万天“生日”小礼 (6)2008/10/12 -- 利用超级链接直接打开文件 (5)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/rgl-medal-of-valor/"><span class="dropcap-brown">话</span></a>说近日Michael Friendly老爷子很郁闷，因为从R-forge上下载的rgl包中rgl.snapshot()函数不能用了，老是说&#8221;failed&#8221;，不能保存图形。我也遇到了同样的问题，不过后来Duncan提供了一个<a title="http://www.stats.uwo.ca/faculty/murdoch/temp/rgl_0.81.708.zip" href="http://www.stats.uwo.ca/faculty/murdoch/temp/rgl_0.81.708.zip">新的下载地址</a>，我下载之后发现可以用了，于是回了个邮件说问题解决了、表示感谢。今天Michael老爷子很高兴，给我回邮件说谢谢益辉同学啊，我还以为我自己的电脑坏掉了呢，寡人对你的大无畏测试精神很是感激，特授予你“rgl英勇奖”！（<a title="https://stat.ethz.ch/pipermail/r-help/2008-October/176451.html" href="https://stat.ethz.ch/pipermail/r-help/2008-October/176451.html" target="_blank">这里是颁奖现场</a>）</p>
<blockquote><p>&#8230;and your test helped me slay the fear that something had gone horribly wrong with my desktop PC. ?I award you the <em>rgl Medal of Valor</em>. <img src='http://yihui.name/cn/wp-content/plugins/tango-smilies/tango/face-wink.png' alt=';-)' class='wp-smiley' /> &#8230;</p></blockquote>
<p>Michael是统计图形届的大牛，获此口头奖章本小子也很是高兴。后来他另写一封邮件说，小贼（第一声），大爷受你在不莱梅演讲的启发，近日<a title="http://euclid.psych.yorku.ca/SCS/Gallery/Test/rgl-animations.ppt" href="http://euclid.psych.yorku.ca/SCS/Gallery/Test/rgl-animations.ppt">也开始玩动画</a>了。</p>
<p>话说回来，rgl这个包牵涉到大量的C和C++代码，还有png库，编译起来很麻烦，R-forge的环境可能不能成功编译，所以那上面的rgl包会有问题，我还奇怪为什么它没有编译日志呢。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2008/10/16 -- <a href="http://yihui.name/cn/2008/10/historical-demo-of-pollen-data/" title="POLLEN数据：散点图中藏数据的历史名案">POLLEN数据：散点图中藏数据的历史名案</a> (0)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li><li>2008/10/27 -- <a href="http://yihui.name/cn/2008/10/birthday-present-to-felix-andrews/" title="送给Felix的一万天“生日”小礼">送给Felix的一万天“生日”小礼</a> (6)</li><li>2008/10/12 -- <a href="http://yihui.name/cn/2008/10/open-files-with-hyperlinks-in-pdf/" title="利用超级链接直接打开文件">利用超级链接直接打开文件</a> (5)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/rgl-medal-of-valor/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>用R画中国地图并标注城市位置</title>
		<link>http://yihui.name/cn/2008/10/china-map-and-city-locations-with-r/</link>
		<comments>http://yihui.name/cn/2008/10/china-map-and-city-locations-with-r/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 10:22:12 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[中国地图]]></category>
		<category><![CDATA[地图]]></category>
		<category><![CDATA[城市]]></category>
		<category><![CDATA[数据]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=187</guid>
		<description><![CDATA[cloud_wei的博客上看到一批数据，拿来放在R里面跑一下：
par(mar=rep(0,4))
dat = read.csv(textConnection("城市,jd,wd
    北 京,116.4666667,39.9
    上 海,121.4833333,31.23333333
    天 津,117.1833333,39.15
    重 庆,106.5333333,29.53333333
    哈尔滨,126.6833333,45.75
    长 春,125.3166667,43.86666667
    沈 阳,123.4,41.83333333
    呼和浩特,111.8,40.81666667
    石家庄,114.4666667,38.03333333
    太 原,112.5666667,37.86666667
    济 南,117,36.63333333
 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/10/china-map-and-city-locations-with-r/"><span class="dropcap-brown">从</span></a><a href="http://hi.baidu.com/cloud_wei/blog/item/b26cbfa9b8e601fa1e17a295.html" target="_blank">cloud_wei的博客</a>上看到一批数据，拿来放在R里面跑一下：</p>
<pre>par(mar=rep(0,4))
dat = read.csv(textConnection("城市,jd,wd
    北 京,116.4666667,39.9
    上 海,121.4833333,31.23333333
    天 津,117.1833333,39.15
    重 庆,106.5333333,29.53333333
    哈尔滨,126.6833333,45.75
    长 春,125.3166667,43.86666667
    沈 阳,123.4,41.83333333
    呼和浩特,111.8,40.81666667
    石家庄,114.4666667,38.03333333
    太 原,112.5666667,37.86666667
    济 南,117,36.63333333
    郑 州,113.7,34.8
    西 安,108.9,34.26666667
    兰 州,103.8166667,36.05
    银 川,106.2666667,38.33333333
    西 宁,101.75,36.63333333
    乌鲁木齐,87.6,43.8
    合 肥,117.3,31.85
    南 京,118.8333333,32.03333333
    杭 州,120.15,30.23333333
    长 沙,113,28.18333333
    南 昌,115.8666667,28.68333333
    武 汉,114.35,30.61666667
    成 都,104.0833333,30.65
    贵 阳,106.7,26.58333333
    福 州,119.3,26.08333333
    台 北,121.5166667,25.05
    广 州,113.25,23.13333333
    海 口,110.3333333,20.03333333
    南 宁,108.3333333,22.8
    昆 明,102.6833333,25
    拉 萨,91.16666667,29.66666667
    香 港,114.1666667,22.3
    澳门,113.5,22.2"))
library(maps)
library(mapdata)
map("china", col = "darkgray", ylim = c(18, 54), panel.first = grid())
points(dat$jd, dat$wd, pch = 19, col = rgb(0, 0, 0, 0.5))
text(dat$jd, dat$wd, dat[, 1], cex = 0.9, col = rgb(0,
    0, 0, 0.7), pos = c(2, 4, 4, 4, 3, 4, 2, 3, 4, 2, 4, 2, 2,
    4, 3, 2, 1, 3, 1, 1, 2, 3, 2, 2, 1, 2, 4, 3, 1, 2, 2, 4, 4, 2))
axis(1, lwd = 0); axis(2, lwd = 0); axis(3, lwd = 0); axis(4, lwd = 0)</pre>
<p><a href="http://yihui.name/cn/wp-content/uploads//1223646981_0.r">文件下载链接</a></p>
<p>效果如下：</p>
<p align="center"><img title="用R画中国地图并标注城市位置" src="http://yihui.name/cn/wp-content/uploads/1223374768_0.png" border="0" alt="用R画中国地图并标注城市位置" /></p>
<p>写这篇日志的目的是征人同投论文，写一些用R获取生活中的“边角料”数据并利用起来做点事情的例子。点击<a title="无处不在的数据及R的探索方法" href="http://images.ruc.edu.cn/other/2008-10-07/1223373806156.zip" target="_blank">这里</a>下载论文。关于R会议，请随时<a title="http://www.cos.name/bbs/read.php?tid=12064" href="http://www.cos.name/bbs/read.php?tid=12064" target="_blank">关注通知</a>。有同写意向的请速速联系我。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2008/08/22 -- <a href="http://yihui.name/cn/2008/08/data-import-and-export-approach/" title="数据导入/导出的通用方法">数据导入/导出的通用方法</a> (0)</li><li>2007/09/15 -- <a href="http://yihui.name/cn/2007/09/china-map-at-province-level/" title="终于搞定了中国分省市地图">终于搞定了中国分省市地图</a> (40)</li><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li><li>2009/12/26 -- <a href="http://yihui.name/cn/2009/12/statistics-in-their-eyes/" title="杯具欣赏：他们眼中的统计学">杯具欣赏：他们眼中的统计学</a> (13)</li><li>2009/12/08 -- <a href="http://yihui.name/cn/2009/12/meeting-r-core-members/" title="最近跟R core们经常打照面">最近跟R core们经常打照面</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/10/china-map-and-city-locations-with-r/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>有谁在课上用统计动画</title>
		<link>http://yihui.name/cn/2008/09/animation-in-classes/</link>
		<comments>http://yihui.name/cn/2008/09/animation-in-classes/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 04:25:45 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[动画]]></category>
		<category><![CDATA[教学]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=182</guid>
		<description><![CDATA[Google Analytics的数据来看，目前至少有这些人在用动画（animation包）：

University of Southern Denmark数学与计算机系的Marco Chiarandini的讲组合优化课【链接】
中科大统计与金融系Weiping Zhang的概率论与数理统计课【链接】
以色列海法大学统计系的Yoni Nazarathy的Interactive Demonstrations of Stochastic and Statistical Models课【链接】

现在动画的数量以及解释是个大问题，一个人做这些事显得有点吃力，有个合作者就好了。
爷还想看：2009/04/24 -- 本小子还真中了John Chambers软件奖 (20)2008/12/25 -- 金狗宝金狗宝金狗饿了喂 (4)2008/11/04 -- 利用Google可视化API展示布朗运动 (7)2008/06/11 -- 终于更新完程序包了：animation 1.0-0 (0)2007/11/12 -- 关于动画包接下来要做的几件事情 (4)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/09/animation-in-classes/"><span class="dropcap-brown">从</span></a>Google Analytics的数据来看，目前至少有这些人在用动画（animation包）：</p>
<ul>
<li>University of Southern Denmark数学与计算机系的Marco Chiarandini的讲<a title="http://www.imada.sdu.dk/~marco/Teaching/Fall2008/DM811/index.html" href="http://www.imada.sdu.dk/~marco/Teaching/Fall2008/DM811/index.html" target="_blank">组合优化课</a>【<a title="http://www.imada.sdu.dk/~marco/Teaching/Fall2008/DM811/visual.html" href="http://www.imada.sdu.dk/~marco/Teaching/Fall2008/DM811/visual.html" target="_blank">链接</a>】</li>
<li>中科大统计与金融系Weiping Zhang的概率论与数理统计课【<a title="http://staff.ustc.edu.cn/~zwp/teach.htm" href="http://staff.ustc.edu.cn/~zwp/teach.htm" target="_blank">链接</a>】</li>
<li>以色列海法大学统计系的Yoni Nazarathy的Interactive Demonstrations of Stochastic and Statistical Models课【<a title="http://stat.haifa.ac.il/~yonin/interactive_demos_course_winter_09/material.html" href="http://stat.haifa.ac.il/~yonin/interactive_demos_course_winter_09/material.html" target="_blank">链接</a>】</li>
</ul>
<p>现在动画的数量以及解释是个大问题，一个人做这些事显得有点吃力，有个合作者就好了。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/04/24 -- <a href="http://yihui.name/cn/2009/04/won-john-chambers-award/" title="本小子还真中了John Chambers软件奖">本小子还真中了John Chambers软件奖</a> (20)</li><li>2008/12/25 -- <a href="http://yihui.name/cn/2008/12/christmas-and-animation-package/" title="金狗宝金狗宝金狗饿了喂">金狗宝金狗宝金狗饿了喂</a> (4)</li><li>2008/11/04 -- <a href="http://yihui.name/cn/2008/11/brownian-motion-with-google-vis-api/" title="利用Google可视化API展示布朗运动">利用Google可视化API展示布朗运动</a> (7)</li><li>2008/06/11 -- <a href="http://yihui.name/cn/2008/06/animation-1-0-0-updated/" title="终于更新完程序包了：animation 1.0-0">终于更新完程序包了：animation 1.0-0</a> (0)</li><li>2007/11/12 -- <a href="http://yihui.name/cn/2007/11/todo-list-of-the-animation-package/" title="关于动画包接下来要做的几件事情">关于动画包接下来要做的几件事情</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/09/animation-in-classes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>一种新的检验方法：眼球检验（Eyeball Test）【请路人帮忙】</title>
		<link>http://yihui.name/cn/2008/09/eyeball-test-fake-coin/</link>
		<comments>http://yihui.name/cn/2008/09/eyeball-test-fake-coin/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 07:26:58 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[Monte-Carlo]]></category>
		<category><![CDATA[假设检验]]></category>
		<category><![CDATA[动画]]></category>
		<category><![CDATA[心理认知]]></category>
		<category><![CDATA[眼球检验]]></category>
		<category><![CDATA[硬币]]></category>
		<category><![CDATA[随机模拟]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=175</guid>
		<description><![CDATA[统计假设检验的同志们注意了，今天我们介绍一种新的检验方法，姑且称之为“眼球检验”，顾名思义，也就是用你的一对眼珠子去完成检验。
问题来源于Dennis Lin的课堂作业，说是有两份抛硬币得到的结果，1代表正面，0代表反面，两份结果如下：
(A)
11110000000000100000101100000100000101001111001100
01111110010110110101101001111001100011011101100000
10001001111110100100001011001011101101110001010010
01100111111100011100101000101001110011100010100111

(B)
01110010010010100010011110010100010011010111001110
01111011010111101101001000111001101011010101101001
00101001110110100100001110101101101001110101100110
01110011110110001110011010111001110011110010100111
现在请问你觉得哪份结果可能是作弊（或者哪枚硬币不均匀）？
Lin在课堂上提供了三种方法：（1）求和，看正面朝上的次数是否正常；（2）求游程数，看游程的数目是否正常；（3）游程最大长度是否正常（连续出现最多的0或1的长度）。我觉得这三个统计量的分布用简单的概率论都可以推导出来，不过Lin主张用Monte Carlo方法偷懒去做，也就是随机模拟长度为200的伯努利分布序列（p = 0.5），然后看三种统计量的分布如何，再看从以上样本计算出的统计量是否处于极端的位置，由此得到P值。这都是正道，而我通常是喜欢研究旁门左道的人，我琢磨着能否用眼珠子直接看出来哪份结果可疑，因此本次节目想拿各位路人做一个心理认知试验。说明如下：
A和B的序列在下面的Flash动画中分别由x1（上）和x2（下）表示，我用阶梯状的线图表示硬币正正反反的变化，从图中对硬币翻转了多少次以及每次保持一面的长度多长都能有一个大致的了解，比如B的翻转次数是不是更密集？A保持同一面不变的长度是不是更长？等等。更多信息请各位客官仔细观察，我就不加干扰了，免得影响判断。中间的图形表示随机模拟的序列，这个模拟在不断进行，每次你们看到的都是一串长度为200的伯努利随机数，注意拿它和上下两幅图分别做对比，看模拟的图与两幅实际样本图中的哪幅更像？当然，越是觉得实际和模拟差异明显，那就越说明该硬币有问题（或记录者作弊了），因为大量的模拟所扮演的角色就是真实的母体。那么究竟哪个是母体的“孩子”呢？请在后面给出你的猜测，谢谢！【点击放大Flash】

我不是完全在开玩笑，国外有人真的做过这方面的理论，将假设检验的理论与图形检验的理论对应，不过时间太长我忘了是谁。如果lixiaoxu老师看到这篇日志，还请对这个试验多多提出宝贵建议：）
爷还想看：2009/05/20 -- 拿小概率事件说事：中央政治局常委对年轻人的七项忠告 (4)2009/04/24 -- 本小子还真中了John Chambers软件奖 (20)2009/02/27 -- 统计分布的检验 (11)2009/02/19 -- 正态分布变量和均匀分布变量分别的累加有什么关系 (4)2008/12/25 -- 金狗宝金狗宝金狗饿了喂 (4)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2008/09/eyeball-test-fake-coin/"><span class="dropcap-brown">做</span></a>统计假设检验的同志们注意了，今天我们介绍一种新的检验方法，姑且称之为“眼球检验”，顾名思义，也就是用你的一对眼珠子去完成检验。</p>
<p>问题来源于Dennis Lin的课堂作业，说是有两份抛硬币得到的结果，1代表正面，0代表反面，两份结果如下：</p>
<pre>(A)
11110000000000100000101100000100000101001111001100
01111110010110110101101001111001100011011101100000
10001001111110100100001011001011101101110001010010
01100111111100011100101000101001110011100010100111

(B)
01110010010010100010011110010100010011010111001110
01111011010111101101001000111001101011010101101001
00101001110110100100001110101101101001110101100110
01110011110110001110011010111001110011110010100111</pre>
<p>现在请问你觉得哪份结果可能是作弊（或者哪枚硬币不均匀）？</p>
<p>Lin在课堂上提供了三种方法：（1）求和，看正面朝上的次数是否正常；（2）求游程数，看游程的数目是否正常；（3）游程最大长度是否正常（连续出现最多的0或1的长度）。我觉得这三个统计量的分布用简单的概率论都可以推导出来，不过Lin主张用Monte Carlo方法偷懒去做，也就是随机模拟长度为200的伯努利分布序列（p = 0.5），然后看三种统计量的分布如何，再看从以上样本计算出的统计量是否处于极端的位置，由此得到P值。这都是正道，而我通常是喜欢研究旁门左道的人，我琢磨着能否用眼珠子直接看出来哪份结果可疑，因此本次节目想拿各位路人做一个<strong>心理认知试验</strong>。说明如下：</p>
<p>A和B的序列在下面的Flash动画中分别由x1（上）和x2（下）表示，我用阶梯状的线图表示硬币正正反反的变化，从图中对硬币翻转了多少次以及每次保持一面的长度多长都能有一个大致的了解，比如B的翻转次数是不是更密集？A保持同一面不变的长度是不是更长？等等。更多信息请各位客官仔细观察，我就不加干扰了，免得影响判断。中间的图形表示随机模拟的序列，这个模拟在不断进行，每次你们看到的都是一串长度为200的伯努利随机数，注意拿它和上下两幅图分别做对比，看模拟的图与两幅实际样本图中的哪幅更像？当然，越是觉得实际和模拟差异明显，那就越说明该硬币有问题（或记录者作弊了），因为大量的模拟所扮演的角色就是真实的母体。那么究竟哪个是母体的“孩子”呢？请在后面给出你的猜测，谢谢！<a href="http://yihui.name/en/wp-content/uploads/1222134826_0.swf">【点击放大Flash】</a></p>
<div style="text-align: center;"><object width="600" height="480" data="http://yihui.name/en/wp-content/uploads/1222134826_0.swf" type="application/x-shockwave-flash"><param name="quality" value="high" /><param name="src" value="http://yihui.name/en/wp-content/uploads/1222134826_0.swf" /></object></div>
<p>我不是完全在开玩笑，国外有人真的做过这方面的理论，将假设检验的理论与图形检验的理论对应，不过时间太长我忘了是谁。如果lixiaoxu老师看到这篇日志，还请对这个试验多多提出宝贵建议：）</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/05/20 -- <a href="http://yihui.name/cn/2009/05/rare-event-rarely-happens/" title="拿小概率事件说事：中央政治局常委对年轻人的七项忠告">拿小概率事件说事：中央政治局常委对年轻人的七项忠告</a> (4)</li><li>2009/04/24 -- <a href="http://yihui.name/cn/2009/04/won-john-chambers-award/" title="本小子还真中了John Chambers软件奖">本小子还真中了John Chambers软件奖</a> (20)</li><li>2009/02/27 -- <a href="http://yihui.name/cn/2009/02/test-statistical-distributions/" title="统计分布的检验">统计分布的检验</a> (11)</li><li>2009/02/19 -- <a href="http://yihui.name/cn/2009/02/cumsum-of-normal-var-and-uniform-var/" title="正态分布变量和均匀分布变量分别的累加有什么关系">正态分布变量和均匀分布变量分别的累加有什么关系</a> (4)</li><li>2008/12/25 -- <a href="http://yihui.name/cn/2008/12/christmas-and-animation-package/" title="金狗宝金狗宝金狗饿了喂">金狗宝金狗宝金狗饿了喂</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/09/eyeball-test-fake-coin/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>多个离群点的探测</title>
		<link>http://yihui.name/cn/2008/09/multiple-outliers-detection/</link>
		<comments>http://yihui.name/cn/2008/09/multiple-outliers-detection/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 07:10:33 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[抽样]]></category>
		<category><![CDATA[离群点]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=173</guid>
		<description><![CDATA[据说多个离群点的探测问题是一个统计难题，这里是我的粗略想法，由于太粗略，我就不解释了。

爷还想看：2007/10/26 -- 真正写点东西真费劲 (0)]]></description>
			<content:encoded><![CDATA[<p>据说多个离群点的探测问题是一个统计难题，这里是我的粗略想法，由于太粗略，我就不解释了。</p>
<div style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="550" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://yihui.name/cn/wp-content/uploads/1221721734_0.swf" /><param name="quality" value="high" /><param name="src" value="http://yihui.name/cn/wp-content/uploads/1221721734_0.swf" /><embed type="application/x-shockwave-flash" width="550" height="550" src="http://yihui.name/cn/wp-content/uploads/1221721734_0.swf" quality="high" data="http://yihui.name/cn/wp-content/uploads/1221721734_0.swf"></embed></object></div>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2007/10/26 -- <a href="http://yihui.name/cn/2007/10/difficulty-in-writing/" title="真正写点东西真费劲">真正写点东西真费劲</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/09/multiple-outliers-detection/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>回归分析中的交互作用展示</title>
		<link>http://yihui.name/cn/2008/09/demo-of-interaction-in-regression/</link>
		<comments>http://yihui.name/cn/2008/09/demo-of-interaction-in-regression/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 06:53:43 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[数据分析]]></category>
		<category><![CDATA[统计图示]]></category>
		<category><![CDATA[交互作用]]></category>
		<category><![CDATA[回归]]></category>
		<category><![CDATA[气泡图]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=172</guid>
		<description><![CDATA[们常见到的教科书上对交互作用的展示一般都是分别给定第二个自变量，然后看第一个自变量对因变量的影响随着第二个自变量取值变化会有何变化。总之，用到的图形都是二维图形，这里我以三维图形来展示交互效应的效果。首先看变量之间没有交互的时候是什么效果：
无论是从x方向还是z方向来看，y（气泡大小）增大的速度都是一样的，例如x=0与x=10的时候，随着z的增加，y增加的速度一样（因为y与z是线性关系，这种关系不受x影响）。
而有交互效应的时候情况就不一样了，y在x或z方向上增大的速度会与x或z本身的取值有关。例如图中x越大，则y沿着z增大越快（因为斜率里面包含了x）。
不知这种形式是否比教科书上几道折线更清楚一些。这个问题灵感来自于R-help的邮件列表。R代码参考英文Blog。
爷还想看：2009/04/01 -- 这个年代该怎样教统计（或不该怎样教） (8)2008/12/01 -- 局部加权回归散点平滑图示 (4)2008/11/04 -- 利用Google可视化API展示布朗运动 (7)]]></description>
			<content:encoded><![CDATA[<a href="http://yihui.name/cn/2008/09/demo-of-interaction-in-regression/"><span class="dropcap-orange">我</span></a>们常见到的教科书上对交互作用的展示一般都是分别给定第二个自变量，然后看第一个自变量对因变量的影响随着第二个自变量取值变化会有何变化。总之，用到的图形都是二维图形，这里我以三维图形来展示交互效应的效果。首先看变量之间没有交互的时候是什么效果：</p>
<p><div class="wp-caption aligncenter" style="width: 410px"><a title="无交互作用" href="http://yihui.name/en/wp-content/uploads/1221718981_1.png"><img style="border: 0pt none;" title="无交互作用" src="http://yihui.name/en/wp-content/uploads/1221718981_0.png" border="0" alt="" width="400" height="333" /></a><p class="wp-caption-text">无交互作用</p></div>
<p>无论是从x方向还是z方向来看，y（气泡大小）增大的速度都是一样的，例如x=0与x=10的时候，随着z的增加，y增加的速度一样（因为y与z是线性关系，这种关系不受x影响）。</p>
<div class="wp-caption aligncenter" style="width: 410px"><a title="有交互作用" href="http://yihui.name/en/wp-content/uploads/1221719196_1.png"><img style="border: 0pt none;" title="有交互作用" src="http://yihui.name/en/wp-content/uploads/1221719196_0.png" border="0" alt="" width="400" height="333" /></a><p class="wp-caption-text">有交互作用</p></div>
<p>而有交互效应的时候情况就不一样了，y在x或z方向上增大的速度会与x或z本身的取值有关。例如图中x越大，则y沿着z增大越快（因为斜率里面包含了x）。</p>
<p>不知这种形式是否比教科书上几道折线更清楚一些。这个问题灵感来自于R-help的邮件列表。R代码参考<a title="交互作用的展示" href="http://yihui.name/en/2008/09/to-observe-interactions-in-bubble-plots/">英文Blog</a>。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/04/01 -- <a href="http://yihui.name/cn/2009/04/how-and-what-to-teach-in-statistics/" title="这个年代该怎样教统计（或不该怎样教）">这个年代该怎样教统计（或不该怎样教）</a> (8)</li><li>2008/12/01 -- <a href="http://yihui.name/cn/2008/12/explore-scatterplot-with-lowess/" title="局部加权回归散点平滑图示">局部加权回归散点平滑图示</a> (4)</li><li>2008/11/04 -- <a href="http://yihui.name/cn/2008/11/brownian-motion-with-google-vis-api/" title="利用Google可视化API展示布朗运动">利用Google可视化API展示布朗运动</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/09/demo-of-interaction-in-regression/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>统计学动画维基百科</title>
		<link>http://yihui.name/cn/2008/06/aniwiki-as-gallery-of-statistical-animations/</link>
		<comments>http://yihui.name/cn/2008/06/aniwiki-as-gallery-of-statistical-animations/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 16:59:01 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[动画]]></category>
		<category><![CDATA[维基百科]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=122</guid>
		<description><![CDATA[终于可以有几天时间放手玩玩儿了，于是乎开始一项新的工程：统计学动画维基百科。
http://animation.yihui.name
基于Wiki来做网站，相信会省事很多。过去的两天时间里刚刚重写完支持网页动画的JavaScript，下一步就是写一个Wiki插件，将Wiki的语言转化为HTML代码，这一点尚需要学习一点PHP；再下一步就该修改更新R程序包了；等这一切框架搭建好之后便可暂时放手网站，开始准备DataViz VI的论文。
近日接连收到Oxford和Stanford学生来信，大家对animation的评价用词最多的是“impressed”，当然这样的话万不可直接理解为褒义，等有人说“useful”了才算数。如德鲁克所提醒的：
……发现任何由于恃才傲物而造成的偏见和无知，并且加以克服。……
不过无论如何，有人关注并使用动画也算是走出一小步了。
爷还想看：2008/06/04 -- Dokuwiki数学公式插件基本搞定 (0)2010/02/02 -- 特别致谢颜林林对COS的贡献 (6)2009/10/03 -- 学院网站、考试、月饼、排骨及其它 (12)2009/04/24 -- 本小子还真中了John Chambers软件奖 (20)2008/12/25 -- 金狗宝金狗宝金狗饿了喂 (4)]]></description>
			<content:encoded><![CDATA[<p>终于可以有几天时间放手玩玩儿了，于是乎开始一项新的工程：统计学动画维基百科。</p>
<p><a title="统计学动画维基百科" href="http://animation.yihui.name">http://animation.yihui.name</a></p>
<p>基于Wiki来做网站，相信会省事很多。过去的两天时间里刚刚重写完支持网页动画的JavaScript，下一步就是写一个Wiki插件，将Wiki的语言转化为HTML代码，这一点尚需要学习一点PHP；再下一步就该修改更新R程序包了；等这一切框架搭建好之后便可暂时放手网站，开始准备<a title="Statistical Graphics: Data and Information Visualization in Today's Multimedia Society" href="http://www.jacobs-university.de/schools/shss/awilhelm/">DataViz VI</a>的论文。</p>
<p>近日接连收到Oxford和Stanford学生来信，大家对animation的评价用词最多的是“impressed”，当然这样的话万不可直接理解为褒义，等有人说“useful”了才算数。如德鲁克所提醒的：</p>
<blockquote><p>……发现任何由于恃才傲物而造成的偏见和无知，并且加以克服。……</p></blockquote>
<p>不过无论如何，有人关注并使用动画也算是走出一小步了。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2008/06/04 -- <a href="http://yihui.name/cn/2008/06/latex-plugin-for-dokuwiki/" title="Dokuwiki数学公式插件基本搞定">Dokuwiki数学公式插件基本搞定</a> (0)</li><li>2010/02/02 -- <a href="http://yihui.name/cn/2010/02/a-big-thank-you-to-linlin-yan/" title="特别致谢颜林林对COS的贡献">特别致谢颜林林对COS的贡献</a> (6)</li><li>2009/10/03 -- <a href="http://yihui.name/cn/2009/10/website-exam-mooncake-rib-etc/" title="学院网站、考试、月饼、排骨及其它">学院网站、考试、月饼、排骨及其它</a> (12)</li><li>2009/04/24 -- <a href="http://yihui.name/cn/2009/04/won-john-chambers-award/" title="本小子还真中了John Chambers软件奖">本小子还真中了John Chambers软件奖</a> (20)</li><li>2008/12/25 -- <a href="http://yihui.name/cn/2008/12/christmas-and-animation-package/" title="金狗宝金狗宝金狗饿了喂">金狗宝金狗宝金狗饿了喂</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2008/06/aniwiki-as-gallery-of-statistical-animations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>将统计学的概念、方法和模型融入动画中</title>
		<link>http://yihui.name/cn/2007/10/explain-statistics-with-animations/</link>
		<comments>http://yihui.name/cn/2007/10/explain-statistics-with-animations/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 16:58:22 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[R图形]]></category>
		<category><![CDATA[动画]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=44</guid>
		<description><![CDATA[这个想法由来已久，但直至昨日才真正动手做，这项工程看起来有点野心勃勃，也正好借此机会把统计学的经典理论回顾复习一遍。
网址：http://R.yihui.name
专门开一个二级域名用作动画展示。抱歉的是，我暂时不想用中文写……先跟鬼子们交流充分之后再考虑建一个中文版好了。同时对鄙人的蹩脚英文也抱歉一下……有砖头的请使劲拍。
爷还想看：2009/04/24 -- 本小子还真中了John Chambers软件奖 (20)2008/10/19 -- Java比R更容易表达连续型动画 (2)2008/07/19 -- Rweb：交互式计算和作图 (0)2007/10/26 -- 真正写点东西真费劲 (0)2010/01/05 -- t检验方差不齐有多重要 (6)]]></description>
			<content:encoded><![CDATA[<p>这个想法由来已久，但直至昨日才真正动手做，这项工程看起来有点野心勃勃，也正好借此机会把统计学的经典理论回顾复习一遍。</p>
<p>网址：<a href="http://R.yihui.name" target="_blank">http://R.yihui.name</a></p>
<p>专门开一个二级域名用作动画展示。抱歉的是，我暂时不想用中文写……先跟鬼子们交流充分之后再考虑建一个中文版好了。同时对鄙人的蹩脚英文也抱歉一下……有砖头的请使劲拍。</p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2009/04/24 -- <a href="http://yihui.name/cn/2009/04/won-john-chambers-award/" title="本小子还真中了John Chambers软件奖">本小子还真中了John Chambers软件奖</a> (20)</li><li>2008/10/19 -- <a href="http://yihui.name/cn/2008/10/java-is-better-than-r-in-animation/" title="Java比R更容易表达连续型动画">Java比R更容易表达连续型动画</a> (2)</li><li>2008/07/19 -- <a href="http://yihui.name/cn/2008/07/rweb-for-interactive-computation-and-graphics/" title="Rweb：交互式计算和作图">Rweb：交互式计算和作图</a> (0)</li><li>2007/10/26 -- <a href="http://yihui.name/cn/2007/10/difficulty-in-writing/" title="真正写点东西真费劲">真正写点东西真费劲</a> (0)</li><li>2010/01/05 -- <a href="http://yihui.name/cn/2010/01/unequal-variance-in-t-test/" title="t检验方差不齐有多重要">t检验方差不齐有多重要</a> (6)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2007/10/explain-statistics-with-animations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>终于搞定了中国分省市地图</title>
		<link>http://yihui.name/cn/2007/09/china-map-at-province-level/</link>
		<comments>http://yihui.name/cn/2007/09/china-map-at-province-level/#comments</comments>
		<pubDate>Fri, 14 Sep 2007 16:46:39 +0000</pubDate>
		<dc:creator>谢益辉</dc:creator>
				<category><![CDATA[统计图示]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[maptools]]></category>
		<category><![CDATA[polygon()]]></category>
		<category><![CDATA[R图形]]></category>
		<category><![CDATA[中国地图]]></category>
		<category><![CDATA[地图]]></category>

		<guid isPermaLink="false">http://yihui.name/cn/?p=29</guid>
		<description><![CDATA[天费了半天劲，才一点点从GIS数据中把中国各省市的多边形“抠”出来。问题缘起于COS论坛上的这个帖子：http://cos.name/bbs/read.php?tid=785，其实我后面的回复基本都跑题了，跑着跑着突然想起上学期上课的时候Prof. Peng, F曾经提到他当年是如何辛辛苦苦用作图软件去搞定地图图示的，我当时听着觉得不应该太困难，于是下课之后去告诉他用R可以很容易做出地图来，他当时问我是不是S-Plus（看来在他们脑子里还是S-Plus的名气大一点），我说类似但不完全一样，云云，最后他问能否作出重庆市的地图，我当时也没仔细注意这个问题，回来一看，map("china")还真没有重庆市。
之后我又花了很长时间找地理数据，其间联系过Victoria University of Wellington的Ray Brownrigg（maps和mapdata等包的作者），他说没有他也没有数据，告诉我要是我能搞到数据他也许可以给我一点Hints，不过我后来死活也没找到；于是开始打另一个注意，就是活生生去读一幅空白中国地图，从中获得线条（实际上是点）的坐标，然后再用坐标结合plot()把图形还原出来，后来发现这种方法做出来的地图太粗糙，而且面临最大的困难是很不容易把各省的坐标数据分开，这样对于地理信息展示是没有意义的。
今天再次找数据的时候，却鬼使神差地发现了国家基础地理信息中心的网站：http://nfgis.nsdi.gov.cn/，里面可以免费下载GIS数据，我今天一眼就看见了国界与省界数据，各种数据都是一个zip压缩包，里面是*.dbf、*.shp和*.shx文件，这是shapefile的通用格式，R里面有maptools包可以读取（read.shape()函数），事实上作图的时候作出来是925个多边形（polygon），我到现在也没明白为什么会有那么多，不过顺利的是我已经知道哪34个多边形是我想要的了。下面这个PDF文件是我的一个示例：
文件下载链接
下面的PNG文件当然就不如PDF清晰了：

爷还想看：2008/10/07 -- 用R画中国地图并标注城市位置 (19)2009/03/02 -- Cartogram：变形的地图 (3)2008/10/30 -- 人的世界是连续的，计算机的世界是离散的 (2)2008/10/12 -- 避免文本标签重叠：maptools中的pointLabel() (4)2007/10/08 -- 将统计学的概念、方法和模型融入动画中 (2)]]></description>
			<content:encoded><![CDATA[<p><a href="http://yihui.name/cn/2007/09/china-map-at-province-level/"><span class="dropcap-none">今</span></a>天费了半天劲，才一点点从GIS数据中把中国各省市的多边形“抠”出来。问题缘起于COS论坛上的这个帖子：<a href="http://cos.name/bbs/read.php?tid=785" target="_blank">http://cos.name/bbs/read.php?tid=785</a>，其实我后面的回复基本都跑题了，跑着跑着突然想起上学期上课的时候Prof. Peng, F曾经提到他当年是如何辛辛苦苦用作图软件去搞定地图图示的，我当时听着觉得不应该太困难，于是下课之后去告诉他用R可以很容易做出地图来，他当时问我是不是S-Plus（看来在他们脑子里还是S-Plus的名气大一点），我说类似但不完全一样，云云，最后他问能否作出重庆市的地图，我当时也没仔细注意这个问题，回来一看，<code>map("china")</code>还真没有重庆市。</p>
<p>之后我又花了很长时间找地理数据，其间联系过Victoria University of Wellington的Ray Brownrigg（<code>maps</code>和<code>mapdata</code>等包的作者），他说没有他也没有数据，告诉我要是我能搞到数据他也许可以给我一点Hints，不过我后来死活也没找到；于是开始打另一个注意，就是活生生去读一幅空白中国地图，从中获得线条（实际上是点）的坐标，然后再用坐标结合<em>plot()</em>把图形还原出来，后来发现这种方法做出来的地图太粗糙，而且面临最大的困难是很不容易把各省的坐标数据分开，这样对于地理信息展示是没有意义的。</p>
<p>今天再次找数据的时候，却鬼使神差地发现了国家基础地理信息中心的网站：<a href="http://nfgis.nsdi.gov.cn" target="_blank">http://nfgis.nsdi.gov.cn/</a>，里面可以免费下载GIS数据，我今天一眼就看见了国界与省界数据，各种数据都是一个zip压缩包，里面是<code>*.dbf</code>、<code>*.shp</code>和<code>*.shx</code>文件，这是<code>shapefile</code>的通用格式，R里面有<code>maptools</code>包可以读取（<em>read.shape()</em>函数），事实上作图的时候作出来是925个多边形（polygon），我到现在也没明白为什么会有那么多，不过顺利的是我已经知道哪<acronym title="31省市+台湾+香港+澳门">34个多边形</acronym>是我想要的了。下面这个PDF文件是我的一个示例：</p>
<p><a href="http://yihui.name/cn/wp-content/uploads/1189787773_0.gz">文件下载链接</a></p>
<p>下面的PNG文件当然就不如PDF清晰了：</p>
<p style="text-align: center;"><a title="中国分省市地图（借助R的maptools包实现）" href="http://yihui.name/cn/wp-content/uploads/1189788151_1.png"><img class="aligncenter" style="border: 0pt none;" src="http://yihui.name/cn/wp-content/uploads/1189788151_0.png" border="0" alt="中国分省市地图（借助R的maptools包实现）" width="471" height="317" /></a></p>
<h2  class="related_post_title">爷还想看：</h2><ul class="related_post"><li>2008/10/07 -- <a href="http://yihui.name/cn/2008/10/china-map-and-city-locations-with-r/" title="用R画中国地图并标注城市位置">用R画中国地图并标注城市位置</a> (19)</li><li>2009/03/02 -- <a href="http://yihui.name/cn/2009/03/cartogram-as-special-maps/" title="Cartogram：变形的地图">Cartogram：变形的地图</a> (3)</li><li>2008/10/30 -- <a href="http://yihui.name/cn/2008/10/continuous-human-world-and-discrete-computer-world/" title="人的世界是连续的，计算机的世界是离散的">人的世界是连续的，计算机的世界是离散的</a> (2)</li><li>2008/10/12 -- <a href="http://yihui.name/cn/2008/10/avoid-label-overlap-pointlabel-in-maptools/" title="避免文本标签重叠：maptools中的pointLabel()">避免文本标签重叠：maptools中的pointLabel()</a> (4)</li><li>2007/10/08 -- <a href="http://yihui.name/cn/2007/10/explain-statistics-with-animations/" title="将统计学的概念、方法和模型融入动画中">将统计学的概念、方法和模型融入动画中</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://yihui.name/cn/2007/09/china-map-at-province-level/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
	</channel>
</rss>
