免费试用
banner

R语言词云终极解决方案—wordcloud2包

作者: afenxi来源: afenxi时间:2017-07-20 10:13:550

摘要:现在你也可以在R语言中绘制多样的词云了。wordcloud2是基于wordcloud2.js封装的一个R包,使用HTML5的canvas绘制。浏览器的可视化具有动态和交互效果,相对于曾经的R包worldcoud,wordcloud2还支持任意形状的词云绘制,这也是我一直想要寻求的特性。

 

现在你也可以在R语言中绘制多样的词云了。wordcloud2是基于wordcloud2.js封装的一个R包,使用HTML5的canvas绘制。浏览器的可视化具有动态和交互效果,相对于曾经的R包worldcoud,

wordcloud2还支持任意形状的词云绘制,这也是我一直想要寻求的特性。

安装&示例

从github安装wordcloud2包:

if (!require(devtools)) install.packages("devtools") devtools::install_github(lchiffon/wordcloud2)

包内含有两份data.frame格式的词频数据:英文版的demoFreq和中文版的demoFreqC,使用wordcloud2直接绘制即可。若需要绘制自己的词频数据,只需构造一个类似的数据框即可,第一列代表词语,第二列存贮相应的词频。

library(wordcloud2) wordcloud2(demoFreqC) wordcloud2(demoFreq) ## 一个粗糙的例子 # df = data.frame(letters, rpois(26, 20)) # wordcloud2(df) R语言词云终极解决方案—wordcloud2包-数据分析网 定制颜色

这里的颜色包括背景色和词语颜色,分别对应backgroundColor和color两个参数。这两个参数可以接受CSS认可的任意的参数值,如red,blue或者rgb(0,0,0)以及十六进制的#ff2fe9等。

另外color参数有更多可接受的参数:

内置的随机色生成方案:random-light和random-dark,在javasript里定制了相应的随机函数 javasript回调函数: 用js撰写任意的颜色生成函数,如

js_color_fun = "function (word, weight) ") wordcloud2(demoFreq,hoverFunction = hoverFunction)

这一部分就是纯粹的js了,有能力或有兴趣想要做些不一样效果的,可以瞅瞅源代码中的hover.js。

结语

最后,想要更多的细节调试可以参见wordcloud2作者的介绍以及wordcloud2.js的API文档。

感谢wordcloud2作者郎大为老师和wordcloud2.js的作者timdream。有兴趣和有能力的朋友可以读读源代码,开开脑洞做些改进,如提升下绘图速度(改进wordcloud2.js的算法),组合多个词云等。

作者:杜亚磊

链接:http://yalei.name/

banner
看过还想看
可能还想看
热点推荐
Yonghong的价值观:以卓越的数据技术为客户创造价值,实现客户成功。
免费试用