别再说不会用 :R语言绘制词云

科学计算与大数据

浏览数:75

2019-8-28

需要的程序包

jiebaR,jiebaRD:分词

wordcloud2:绘制词云

installpackage('jiebaR','jiebaRD','wordcloud2) #安装程序包

运行程序包

library(jiebaR,jiebaRD) 
library(wordcloud2)

导入数据

news <- read.csv(''C:/Users/Administrator/Desktop/news.csv'') #读取csv格式文件
news <- read_excel(''C:/Users/Administrator/Desktop/news.csv'') #读取xls 和 xlsx 格式文件

image

text<-news$x #提取文本数据所在列

分词

mixseg<-worker("mix") #建立模型分词
a<-segment(text,mixseg) #开始分词

去停用词

需要将对研究无意义的词去除,再次只提供了示例代码。

stopwords <- read.table("C:/Users/Thinkpad/Desktop/停用词.txt")
class(stopwords) 
stopwords <- as.vector(stopwords[,1]) 
wordResult <- removeWords(a,stopwords)

绘制词云

freq<-table(a) #词频统计
freq   #查看词频统计结果
wordcloud2(freq,shape='star') #绘制词云

image

发福的星星型词云!

参数解读

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)

data:包含每列中的word和freq的数据帧,按照word出现的顺序由内向外画图(可以按照freq降序美化wordcloud)。

size:字体大小,默认为1。较大的大小意味着较大的单词。

fontFamily:要使用的字体。

fontWeight:字体重量,例如normal, bold or 600

color:文本的颜色,可以使用关键字random-dark和random-light。也支持颜色矢量。

minSize:字幕的字符串

backgroundColor:背景的颜色。

gridSize:用于标记画布可用性的网格大小,网格大小越大,单词之间的差距越大。

minRotation:文本应该旋转的最小旋转(以rad为单位)。

maxRotation:文本应旋转的最大旋转(以rad为单位)。

rotateRatio:单词旋转的概率。将数字设置为1以始终旋转。

shape:绘制“云”的形状。 ‘circle’ (default), ‘cardioid’ (心形’,苹果或心形曲线,最知名的极坐标方程), ‘diamond’ (菱形), ‘triangle-forward’(三角形前移), ‘triangle’(三角形), ‘pentagon’(五角形), and ‘star

ellipticity:平坦度

figPath:画布路径

作者:大道无形x我有型