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,shape?=?’star’) ?
案例二:中文词云
wordcloud2(demoFreqC,?size?=?2,?fontFamily?=?”微软雅黑”,??
color?=?”random-light”,?backgroundColor?=?”grey”) ?
案例三:
wordcloud2(demoFreq,?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,fontFamily = “微软雅黑”,?color = “random-light”,backgroundColor = “grey”)
案例七:
wordcloud2(data,minRotation = -pi/2,maxRotation = -pi/2)?
?
案例八:
wordcloud2(data,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,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)’以及十六进制的’#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,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