102009

些日子有位童鞋在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阅读的童鞋们请打开原文链接在浏览器中观看,否则啥都看不到)

爷还想看:

7 Responses to “用R语言和Flash以及JavaScript生成标签云”

Comments (7)
  1. cloudly 说:

    我想知道的是,R可以装在服务器端?
    随时更新这个XML么?

    • 谢益辉 说:

      XML可以是文件的形式,也可以是字符串形式。wp-cumulus插件就是把wp_tag_cloud();的输出读入Flash,然后生成标签云。我只不过是把数据整理了一下,变成了R数据框,然后利用这个数据框生成XML字符串或文件,让Flash读入。

      由于WP默认不能直接生成R的数据框,所以没有必要在服务器端装R然后更新XML文件,虽然这样做是可以的。有些国外主机支持SSH登录、定期执行一些Linux命令,所以装R来支持网站是可能的。不过我试过hostmonster,因为有些相关的软件装不上,R没法正常编译,所以装不上,但像Python这样的流行软件是可以自己在服务器上编译运行的。

  2. jah 说:

    天地人大BBS上的灌水名人堂也是如此

  3. Jing 说:

    :idea: 怎么什么到你手里,都可以掌握,而且变得清晰简洁?暗佩服啊……!

    • 谢益辉 说:

      where where,过奖了,哈哈,我只不过是喜欢看起来好玩的东西而已,然后争取让好玩的东西变得更容易玩

Leave a Reply

(required)

(required)

WWW.YIHUI.NAME XIE@YIHUI.NAME © 2007 - 2010 by Yihui Xie