数据可视化——R语言wordcloud2包绘制字云图

数据可视化——R语言wordcloud2包绘制字云图

概述:使用R语言的wordcloud2工具包绘制字云图,并保存为图片格式或网页格式

字云图,也称为标签云图或语言云图。通过使每个字的大小与其出现频率成正比,显示不同单词在给定文本中的出现频率,然后将所有的字词排在一起,形成云状图案,也可以任何格式排列:水平线、垂直列或其他形状。

使用工具:wordcloud2包,webshot包及htmlwidgets包

wordcloud2包可依据提供的单词及每个单词的频率自动生成字云图,同时可以设置单词的颜色,单词的排列形状等属性。wordcloud2包详的细描述可以参考前人的工作,如R语言︱文本挖掘——词云wordcloud2包https://blog.csdn.net/sinat_26917383/article/details/51620019
本文的主要目是展示一个自己使用wordcloud2包绘制字云图的实例,并探讨如何将绘制好的字云图导出为网页格式或图片格式。

安装好wordcloud2包(install.packages(wordcloud2))后,可以运行以下代码查看官方的一个示例:

library(wordcloud2)
wordcloud2(demoFreq, size = 2,color = "random-light", backgroundColor = "grey")

效果图如下:
Alt
那么,如何依据自己设定的单词与频率绘制一个字云图呢,我自己写的示例如下:

rm(list=ls()) #清除工作区
library(wordcloud2)
#创建词的列表
word <- c("好困","想休息","期待放假","好饿","想睡觉","减肥","不长痘痘","玩","工作开心",
    "加油","努力","坚持到底","事业有成","家庭幸福","早日脱单")

#为每一个词随机指定出现的频率
freq <- sample(seq(0,1,0.01) , length(word) , replace=TRUE) 
Data <- data.frame(word=word,freq=freq)

#wordcloud包将自动生成字云图
#"backgroundColor = "设置背景为黑色
#“rotateRatio=”设置需要90度旋转的词的比例
wordcloud2(Data, backgroundColor = "black",rotateRatio=0.5)

效果图如下:
在这里插入图片描述
绘制字云图时,需要将显示的单词和频率保存为数据框即可。

如何将绘制好的字云图保存的图片格式呢?可通过以下操作完成:Viewer—>Export—>Save as Image—>设置好保存的路径、图片名,图片格式,图片大小—>Save

如何通过代码实现图片自动保存呢?代码如下:

rm(list=ls()) #清除工作区
library(wordcloud2)
library(webshot)
webshot::install_phantomjs() #首次使用需要执行
library(htmlwidgets)
#创建词的列表
word <- c("好困","想休息","期待放假","好饿","想睡觉","减肥","不长痘痘","玩","工作开心",
          "加油","努力","坚持到底","事业有成","家庭幸福","早日脱单")

#为每一个词随机指定出现的频率
freq <- sample(seq(0,1,0.01) , length(word) , replace=TRUE)
Data <- data.frame(word=word,freq=freq)

#wordcloud包将自动生成字云图
#"backgroundColor = "设置背景为黑色
#“rotateRatio=”设置需要90度旋转的词的比例

my_graph <- wordcloud2(Data, backgroundColor = "black",rotateRatio=0.5)

saveWidget(my_graph,"tmp.html",selfcontained = F) #先保存为网页格式
webshot("tmp.html","wordcloud.jpg", delay = 3,vwidth = 1000, vheight=1000) #在依据网页格式生成jpg图片格式
#其中“delay =”设置在保存图片之前需要等待的时间(单位:秒),这主要是因为字云图要完全显示出绘制的单词时间较慢,需要等到,需要依据显示的单词数量合理设置;
#“vwidth =”和“ vheight=”指定保存时的高宽

注意:运行以上代码需要确保安装了webshot包和htmlwidgets包。首次执行上述代码时需要运行webshot::install_phantomjs()安装js脚本,运行时间稍长(以网速而定),请耐心等待。如果运行这行代码出错,可能需要更新或重新安装webshot包(install.packages(webshot))。

正常执行以上代码后可将绘制好的字云图保存为网页文件tmp.html和图片文件wordcloud.jpg。

值得注意的是,无论是使用Rstudio的图片导出还是也上用于保存的代码,都不能设置保存时图片的分辨率。如果你有好的想法,欢迎评论!

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值