• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

R语言︱文本挖掘——词云wordcloud2包

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

wordcloud2函数说明

wordcloud2(data, size = 1, minSize = 0, gridSize =  0,  

fontFamily = NULL, fontWeight = \'normal\',  

color = \'random-dark\', backgroundColor = "white",  

minRotation = -pi/4, maxRotation = pi/4, rotateRatio = 0.4,  

shape = \'circle\', ellipticity = 0.65, widgetsize = NULL)  

常用参数:

(1)data:词云生成数据,包含具体词语以及频率;

(2)size:字体大小,默认为1,一般来说该值越小,生成的形状轮廓越明显;

(3)fontFamily:字体,如‘微软雅黑’;

(4)fontWeight:字体粗细,包含‘normal’,‘bold’以及‘600’;;

(5)color:字体颜色,可以选择‘random-dark’以及‘random-light’,其实就是颜色色系;

(6)backgroundColor:背景颜色,支持R语言中的常用颜色,如‘gray’,‘blcak’,但是还支持不了更加具体的颜色选择,如‘gray20’

(7)minRontatin与maxRontatin:字体旋转角度范围的最小值以及最大值,选定后,字体会在该范围内随机旋转;

(8)rotationRation:字体旋转比例,如设定为1,则全部词语都会发生旋转;

(9)shape:词云形状选择,默认是‘circle’,即圆形。还可以选择‘cardioid’(苹果形或心形),‘star’(星形),‘diamond’(钻石),‘triangle-forward’(三角形),‘triangle’(三角形),‘pentagon’(五边形); 

官方包中的几个案例

案例一:星星图

library(wordcloud2)  

wordcloud2(demoFreq, size = 1,shape = \'star\')  

案例二:中文词云

wordcloud2(demoFreqC, size = 2, fontFamily = "微软雅黑",  

color = "random-light", backgroundColor = "grey")  

案例三:

wordcloud2(demoFreq, size = 2, minRotation = -pi/2, maxRotation = -pi/2) 

 

案例四:

wordcloud2(demoFreq, size = 2, minRotation = -pi/6, maxRotation = -pi/6,
rotateRatio = 1)

 

案例五:文本导入情况

数据来源:链接: http://pan.baidu.com/s/1jI4gEnc 密码: uids

data <- read.csv(\'c:/data.csv\', sep="," ,header = T)  #读取原始数据  

head(data)   #检查数据,查看是否存在乱码的情况  

wordcloud2(data, size = 1, shape=\'cardioid\',color = \'random-dark\', backgroundColor = "white",fontFamily = "微软雅黑")

#绘制文字云,其中data就是我们读取的数据,size是对应文字大小,shape是绘制形状  

                                   

案例六:中文词云

 wordcloud2(data, size = 2, fontFamily = "微软雅黑", color = "random-light", backgroundColor = "grey")

案例七:

wordcloud2(data, size = 2, minRotation = -pi/2, maxRotation = -pi/2) 

 

案例八:

wordcloud2(data, size = 1,color = \'random-light\',  backgroundColor = "gray", fontWeight=\'bold\',fontFamily = "微软雅黑",  

minRotation = -pi/3, maxRotation = pi/3,rotateRatio = 0.8)  

我们重新设定了字体为粗体,字体旋转角度在正负60度之间,旋转比例为80%。

 

案例九:自定义图片代码

图片链接: http://pan.baidu.com/s/1pL5s87T 密码: v652

这次用的数据是wordcloud2的示例数据,当然我们也可以使用自定义数据

 

batman = system.file("examples/batman.png",package = "wordcloud2")

###读取形状图片,注意图片默认放在wordclou2的sample包中,浩彬老撕的路径如下:"d:/Program Files/R/R-3.3.0/library/wordcloud2/examples/batman.png"

wordcloud2(demoFreq, figPath = batman, size = 1,color = "black")

###绘制云此图,其中demoFreg即为所用的数据,figPath = batman为所用图片

(2)文字云词图

有些时候,我们除了需要自定义形状,可能也需要形成文字,这就需要用到wordcloud2中的新函数letterCloud

代码:

letterCloud(demoFreq, word ="R", wordSize = 2,color = \'random-dark\')

定制形状

学会定义颜色可以让你的词云时黄时紫,却不能像马像牛又像羊。变形最简单的方式就是定义shape参数,如wordcloud2(demoFreqC,shape=\'star\')。还支持\'diamond\',\'cardioid\'等参数(都是在js脚本中预定义好的对应的函数),更多请看函数帮助文档。

内置的几个参数并不十分有趣,完全的自定义才亦可赛艇。wordcloud2允许你传入一张图片,把词云填充在图中的黑色区域。这样,找到一头牛和一匹马,你的云就可以变换了。

wordcloud2(demoFreqC, figPath=\'~/Desktop/niu.jpg\') 
wordcloud2(demoFreqC, figPath=\'~/Desktop/ma.jpg\') 

代码中所需的图片都可以在上图截取,这里就不放了。另外,如果想画成字符形状,你可能需要先画出字符,再使用wordcloud2函数绘制。该函数背后的逻辑如上所述,先画出图片再传入figPath参数。


定制颜色

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

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

内置的随机色生成方案:random-light和random-dark,在javasript里定制了相应的随机函数

javasript回调函数: 用js撰写任意的颜色生成函数,如

js_color_fun = "function (word, weight) {

return (weight > 80) ? \'#f02222\' : \'#c09292\';

}"

wordcloud2(data, color = htmlwidgets::JS(js_color_fun), backgroundColor = \'black\')

js_color_fun = "function (word, weight) {

return (weight > 2000) ? \'#f02222\' : \'#c09292\';

}"

wordcloud2(demoFreqC, color = htmlwidgets::JS(js_color_fun), backgroundColor = \'black\')

此处需要使用htmlwidgets的JS函数把字符形式的参数值解析成js函数。

R中的函数向量: js回调函数想必让很多纯R语言用户懵逼,最简单的方式是传入一个定制后的颜色向量。wordcloud2(demoFreqC, color = ifelse(demoFreqC[, 2] > 2000, \'#f02222\', \'#c09292\')这行代码R语言函数代替了js回调函数,效果相同。

内容参考链接:http://blog.csdn.net/sinat_26917383/article/details/51620019

       http://www.xueqing.tv/cms/article/226

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
大数据 | 从实例教你掌握R语言发布时间:2022-07-18
下一篇:
R语言编程艺术发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap