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

R语言文字云神器wordcloud2包

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

续上篇文章,总结下wordcloud2包,主要的函数包括wordcloud2()和letterword(),其中wordcloud2函数用于生成文字云,而letterword能将词云设置成文字形状,接下来分别介绍这两个函数。

  • wordcloud2函数
wordcloud2(data, size = 1, minSize = 0, gridSize =  0,
    fontFamily = 'Segoe UI', fontWeight = 'bold',
    color = 'random-dark', backgroundColor = "white",
    minRotation = -pi/4, maxRotation = pi/4, shuffle = TRUE,
    rotateRatio = 0.4, shape = 'circle', ellipticity = 0.65,
    widgetsize = NULL, figPath = NULL, hoverFunction = NULL)

主要参数介绍:

(1) data: A data frame including word and freq in each column
(2) size:Font size, default is 1. The larger size means the bigger word.
(3) fontFamily:字体,如"Aril"
(4) fontWeight:字体粗细,例如normal、bold、600
(5) color:字体色系,可以选"random-dark"或"random-light"
(6) backgroundColor:Color of the background.
(7) minRotation和maxRotation:文字旋转角度的最小值和最大值
(8) rotateRatio:字体旋转比例,如果设定为1则全部的词都会旋转
(9) shape:词云的形状,可选的有:"circle"(圆形)、"star"(五角星)、"cardioid"(苹果或心)、"diamond"(钻石)、"triangle-forward"(三角形_平躺)、"triangle"(三角形_直立)、"pentagon"(五边形)
(10) figPath:The path to a figure used as a mask.
  • lettercloud函数
letterCloud(data, word, wordSize = 0, letterFont = NULL, ...)

下面以包中自带的数据集demoFreqC为例介绍函数具体用法

library(wordcloud2)

wordcloud2(demoFreqC, 
	size = 1, 
	shape = 'circle',
	fontFamily = '微软雅黑',
	fontWeight = "nornal",
	rotateRatio = 0.5,
	color = "random-light",
	backgroundColor = 'snow')

生成一个圆形的词云,字体为微软雅黑,文字旋转比例0.5,用light色系,桌面背景颜色为snow,效果如下:

可以继续调整参数以得到自己想要的图形,如将size设置为2,使文字云铺满整个画布

此外,生成的文字云页面支持鼠标悬浮显示动态标签,即将鼠标放在一个词如“数据”上,会显示这个词对应出现的次数。
除了生成内置形状的文字云,wordcloud2还支持自定义图片形状,下载好一张白色背景的图片,利用figPath参数调用这张图片的路径,就能绘制出该图片形状的词云,如下面推特图标的形状

wordcloud2(demoFreqC, 
	size = 1, 
	fontFamily = '微软雅黑',
	fontWeight = "600",
	rotateRatio = 1,
	color = "random-dark",
	backgroundColor = 'snow',
	figPath = '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/wordcloud2/examples/t.png'
)

生成词云如下:

除了内置的形状以及图片的自定义形状外,还能利用lettercloud函数生成自定义的文字形状,如画出R形状的词云,可以一下代码

letterCloud(demoFreqC, "R", wordSize = 0.3)

效果如下:

若想生成中文,需要用letterFont指出具体用的哪种中文字体,这就需要在使用之前了解自己的电脑有哪些中文字体,mac可以在字体册例查看,如果未指明字体,中文会乱码,所有的字都生成一个类似“口”的方框。

letterCloud(demoFreqC, "分析", wordSize = 0.3,letterFont = 'Hei')

效果如下:

总结:wordcloud2的功能还是非常齐全的,能生成很多形状的词云,除了包里自带的集中shape形状,还可以用图片生成任意图片形状,以及lettercloud生成任意文字形状。


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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