R语言文字云神器wordcloud2包

续上篇文章,总结下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生成任意文字形状。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值