绘图系列|R-wordcloud2包绘制词云

简介: 绘图系列|R-wordcloud2包绘制词云

本文首发于“生信补给站”公众号 绘图系列|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')

image.png

5.2 汉字图形展示


letterCloud(data.freq[,2:3],word="地球",size = 2)

image.png

5.3 指定图形

指定的背景图需要在R包的example文件夹中,本例为微信的开机图,然而不像,,,鬼知道咋回事啊。


world = system.file("examples/download1.jpg",package = "wordcloud2")
wordcloud2(data.freq[,2:3], figPath = world, size = 1,color = "black")

image.png


OK,词云绘制完毕。


你确定你不想看看你喜欢的书,杂志,都主要是说的些什么?

你确定你不想看看唐诗三百首,都主要是用的哪些词?

你确定你不想看看四六级,考研英语,都主要有哪些高频词汇,不是省了买本书?

你确定你不想看看各种影评,弹幕都是吐槽或者感概的啥?

相关文章
|
2月前
|
关系型数据库 Python
Matplotlib 绘制多图
Matplotlib 绘制多图
41 0
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 绘制多图 1
这段代码介绍了如何使用 Matplotlib 库中的 `subplot()` 方法在同一画布上绘制多个子图。通过指定行数(`nrows`)、列数(`ncols`)以及子图的位置序号(`index`),可以在一个整体图像中布局多个独立的图表。例如,`subplot(1, 2, 1)` 和 `subplot(1, 2, 2)` 分别指定了在一个 1 行 2 列的网格中的第一个和第二个位置。示例展示了如何创建两个子图,并分别为它们添加标题。
34 5
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图线 4
自定义绘图中的线样式,包括线型、颜色和大小等属性。通过使用`color`参数,您可以轻松设置线条颜色,支持多种预设颜色及自定义颜色(如 SeaGreen 或 #8FBC8F)。示例代码展示了如何绘制指定颜色的线条。
54 10
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图线 5
自定义绘图线样式,包括线型、颜色和粗细等属性。通过 `color` 或 `c` 参数可设定线的颜色,支持多种颜色标记(如 &#39;r&#39; 表示红色)及自定义颜色(如 &#39;SeaGreen&#39;)。示例展示了如何应用自定义颜色绘制图形。
37 6
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图线 7
通过在`plot()`方法中添加多对x,y值,可以实现多条线的同时绘制。示例代码展示了如何使用Matplotlib和NumPy库绘制并展示两条不同样式的线。
33 6
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图线 6
使用 Matplotlib 自定义绘图线样式,包括线的类型、颜色和大小等属性。通过设置 `linewidth` 参数(可简写为 `lw`)调整线宽,该参数接受浮点数值
53 5
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图线 2
Matplotlib教程之绘图线篇的第二部分,主要介绍如何自定义绘制线的样式,包括线型、颜色及粗细等属性。重点讲解了使用`linestyle`参数或其简写`ls`来设置不同类型的线条:实线、点虚线、破折线、点划线以及不显示线。并通过一个具体示例展示了如何应用点划线。
45 1
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图线 3
Matplotlib 中自定义线条样式,包括线条类型、颜色和大小等属性。通过 `color` 参数或其简写 `c`,可以设置线条颜色,支持预设颜色标记(如 &#39;r&#39; 表示红色)及自定义颜色(如 SeaGreen)。示例展示了使用红色线条绘制数组数据的方法。
44 1
|
5月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图线 1
本教程介绍如何使用 Matplotlib 自定义绘图中的线条样式,包括线的类型、颜色和大小等属性。通过设定 `linestyle` 参数,可以轻松实现实线、点虚线、破折线及点划线等多种样式。示例代码展示了如何绘制点虚线。
49 1
|
4月前
|
关系型数据库 Python
Matplotlib 教程 之 Matplotlib 绘制多图 3
`subplot()` 需要手动指定位置,而 `subplots()` 可一次性生成多个子图,通过 `ax` 对象进行调用。`subplots()` 方法支持多种参数,如设置行列数 (`nrows`, `ncols`)、共享轴 (`sharex`, `sharey`) 等。示例展示了不同场景下的子图绘制方法,包括共享轴、极坐标图等。
38 0