绘图系列|R-wordcloud2包绘制词云
时间:2022-07-22
本文章向大家介绍绘图系列|R-wordcloud2包绘制词云,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前段时间读完大刘的流浪地球,本来想着写点东西... 结果“懒癌”了,今天就先弄个词云凑合吧( ╯□╰ )。
词云首先需要将下载好的“流浪地球”的文本文件读入R,然后使用jieba包对文本进行分词,然后绘制词云。
一 数据准备
载入所需的R包,准备好流浪地球的txt格式的文本文件。
library(jiebaRD)
library(jiebaR)
library(wordcloud2)
二 分词,统计词频
使用jieba包对文本进行分词。
engine = worker()
segment("流浪地球.txt",engine)
data <- scan('流浪地球.segment.2019-04-09_22_36_54.txt',sep='n',what='',encoding="UTF-8")
data2 <- freq(data)
data2 <- qseg[data]
data.words <- data2
head(data.words)
三 去掉停词
过滤掉类似“的”,“你”,“我们”等类似的无意义的停词,并可根据自己需要设置词频的个数。
#过滤掉1个字的词
data.words <- subset(data.words, nchar(as.character(data.words))>1)
#过滤停词
stop=read.table(file=file.choose(),colClasses="character")
stopwords=c(NULL)
for(i in 1:dim(stop)[1]){
stopwords=c(stopwords,stop[i,1])
}
for(j in 1:length(stopwords)){
data.words <- subset(data.words,data.words!=stopwords[j])
}
四 统计词频
4.1 统计词频
data.freq <- table(unlist(data.words))
data.freq <- rev(sort(data.freq))
data.freq <- data.frame(word=names(data.freq), freq=data.freq)
4.2 根据需要过滤频次
#按词频过滤词,过滤掉只出现过一次的词,这里可以根据需要调整过滤的词频数
data.freq=subset(data.freq, data.freq$freq.Freq>=2)
head(data.freq)
word freq.Var1 freq.Freq
1 地球 地球 164
2 太阳 太阳 95
3 发动机 发动机 60
4 人类 人类 35
5 地面 地面 30
6 木星 木星 28
五 绘制词云
5.1 图形设定为“star”
wordcloud2(data.freq[,2:3],color = "random-light", backgroundColor = "grey",shape = 'star')
5.2 汉字图形展示
letterCloud(data.freq[,2:3],word="地球",size = 2)
5.3 指定图形
指定的背景图需要在R包的example文件夹中,本例为微信的开机图,然而不像,,,鬼知道咋回事啊。
world = system.file("examples/download1.jpg",package = "wordcloud2")
wordcloud2(data.freq[,2:3], figPath = world, size = 1,color = "black")
OK,词云绘制完毕。
你确定你不想看看你喜欢的书,杂志,都主要是说的些什么?
你确定你不想看看唐诗三百首,都主要是用的哪些词?
你确定你不想看看四六级,考研英语,都主要有哪些高频词汇,不是省了买本书?
你确定你不想看看各种影评,弹幕都是吐槽或者感概的啥?
- django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段的使用
- logback + slf4j + jboss + spring mvc
- Oracle XE http端口8080的修改
- django之对FileField字段的upload_to的设定
- JAVA_HOME环境变量失效的解决办法
- JBOSS EAP 6.0+ Standalone模式安装成Windows服务
- Django 设置media static
- Django---Ajax
- 利用Spring MVC搭建REST Service
- ehcache2.8.3入门示例:hello world
- day4、Linux基础题目
- 命令行执行Django脚本的方法
- Spring Security笔记:Hello World
- day5、文件乱码怎么解决
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法