下面使用R语言进行绘制词云图
词云图是一种用来展现高频关键词的可视化表达,通过文字、色彩、图形的搭配,产生有冲击力地视觉效果,而且能够传达有价值的信息。
一、介绍wordcloud2包和数据集
下面使用R语言中的wordcloud2 包创建词云图
如果没有wordcloud2 包,先通过下面语句进行安装
install.packages("wordcloud2")
wordcloud2 包可以根据不同的词语权重自定义字体大小、颜色和布局模式,并且支持更加灵活的配置选项,使得生成的词云图更加精美和逼真。
数据集采用Wordcloud2包自带数据集demoFreqC
demoFreqC数据集如下所示,第一列是关键词,第二列是关键词对应的频数
demoFreqC数据集的维度如下,即有885个关键词,2列数据
二、画图
(一)加载包
library(wordcloud2) # 加载包
data(demoFreqC)#加载数据集
View(demoFreqC)#查看数据集
dim(demoFreqC)#数据集维度
(二)画基础词云图
wordcloud2(demoFreqC)
只需要在wordcloud2()函数中填入需要画词云图的数据即可,数据中应该是两列数据,即关键词与频率。在这个例子中,数据就是demoFreqC。
(三) 词云图-修改词云大小
wordcloud2(demoFreqC, size = 2)
#如果不设置size,则默认为1,设置成了2,词云图字会明显变大。
size控制字体的大小,如果不设置size,则默认为1,这里设置成了2,词云图字明显比上图字体大了
(四) 词云图-修改形状
wordcloud2(demoFreqC, shape = 'star',size=0.5)
shape控制词云图的形状
默认为'circle',也就是圆形
这里选择了shape="star",也就是将词云图的形状设置成了五角星形
其他形状有:
'cardioid'(心形,也是最受欢迎的形状)
'diamond' (钻石形状)
'triangle-forward'(朝前的三角形)
'triangle'(三角形)
'pentagon'(五边形)
大家可以试一下
(五) 词云图-修改关键词颜色
wordcloud2(demoFreqC, size = 0.5,shape="pentagon",
color = "random-light")
color控制关键词颜色
这里color="random-light",也就是关键词的颜色设置成了"随机浅色",如下:
在wordcloud2库中,color参数有多种可选项,包括:
1. "random":随机颜色。
2. "random-dark":随机深色。
3. "random-light":随机浅色。
4. "black":黑色。
5. "white":白色。
6.“red”:红色 等等
试想如果color="white",结果是什么呢?
wordcloud2(demoFreqC, size = 0.5,shape="pentagon",
color = "white")
最后出来的是一个空白界面,那么关键词去哪里了呢?
是因为图的背景是白色的,关键词的颜色也是白色,所以没有出来想要的词云图,那么怎么解决呢?试想如果将图的背景颜色改成非白色,那么是不是就能显示出词云图来了呢?
下面谈一谈修改图的背景颜色
(六) 词云图-修改图的背景颜色
wordcloud2(demoFreqC, size = 0.5,shape="star",
color = "white", backgroundColor = "darkgrey")
backgroundColor控制图的背景颜色
这里设置backgroundColor="darkgrey",也就是将图的背景颜色设置成了黑灰色,关键词的颜色还是白色
看下面的词云图,白色的关键词就显示出来了
除了"darkgrey"之外,常用的颜色还有"black"、"white"、"grey"等等
(七) 词云图-修改旋转角度
wordcloud2(demoFreqC,
size = 0.5,
shape = "star",minRotation = 30, maxRotation = 45,
rotateRatio = 1
)
①minRontatin与maxRontatin:
字体旋转角度范围的最小值以及最大值,字体会在该范围内随机旋转,具体旋转角度随机
②rotateRatio:用于控制词云中每个单词旋转的概率。字体旋转比例,如设定为1,则全部词语都会发生旋转
它的取值如果小于等于0,则表示全部关键词不旋转
它的取值如果大于等于1,则表示全部关键词随机旋转
它的取值如果范围在0到1之间时,表示每个关键词有多少概率进行旋转。
如:设置为0.5,则每个关键词有50%的概率旋转。
该参数的默认值为0.25。
(八) 词云图-突出主题/重点
wordcloud2(demoFreqC,color = ifelse(demoFreqC[, 2] > 200, 'red', 'skyblue'))
这是一个条件语句,用于根据词频表格`demoFreqC`中的第二列的值来设置关键词的颜色。
如果该列的值大于200,则颜色设置为'red',否则设置为'skyblue'。
(九) 保存词云图
library(htmlwidgets)#载入包
R=wordcloud2(demoFreqC,shape="star",
color = ifelse(demoFreqC[, 2] > 200, 'red', 'skyblue'))
saveWidget(R,"C:/Users/86159/Desktop/词云图.html")#保存在指定的路径,名称为词云图
如果想将一个图形保存为HTML文件,可以使用htmlwidgets包中的saveWidget()函数。
运行成功后,就可以在保存路径下找到保存好的词云图.html文件啦!