首先安装如下的第三方库:jieba、wordcloud、matplotlib
pip install jieba
pip install wordcloud
pip install matplotlib
如果你的使用的是anaconda3,那么只需要下载jieba和wordcloud即可,matplotlib以包含在anaconda3里面
创建一个有文本内容的文本文件(我创建的是.txt文件)
可以创建py文件了,导入想要绘制词云的文本文件:
text
= open(r
'E:\11.txt',encoding
='gbk')
mylist
= list(text
)
然后进行遍历,连接,计算词频,设置词云样式:
word_list
= [''.join
(jieba
.cut
(sentence
)) for sentence
in mylist
]
new_text
= ''.join
(word_list
)
wordcloud
= WordCloud
(font_path
='simhei.ttf',background_color
='black').generate
(new_text
)
最后附上效果图与代码:
import jieba
from wordcloud
import WordCloud
import matplotlib
.pyplot
as plt
text
= open(r
'E:\11.txt',encoding
='gbk')
mylist
= list(text
)
word_list
= [''.join
(jieba
.cut
(sentence
)) for sentence
in mylist
]
new_text
= ''.join
(word_list
)
wordcloud
= WordCloud
(font_path
='simhei.ttf',background_color
='black').generate
(new_text
)
plt
.imshow
(wordcloud
)
plt
.axis
('off')
plt
.show
()
—————————————————————————————————————————————————
背景轮廓词云图:(根据上面的例子改编)
以这张图为背景: 然后代码的话在上面代码的基础上添加几行即可:
import imageio
from collections
import Counter
......
......
con_words
= [x
for x
in jieba
.cut
(new_text
) if len(x
) >= 2]
fq
= Counter
(con_words
).most_common
()
fq
= dict(fq
)
pac_mask
= imageio
.imread
(r
'e:\boy.png')
...
...
效果图:
完整代码:
import jieba
from wordcloud
import WordCloud
import imageio
import matplotlib
.pyplot
as plt
from collections
import Counter
content
= open(r
'e:\11.txt',encoding
='gbk')
mylist
= list(content
)
word_list
= [''.join
(jieba
.cut
(sentence
)) for sentence
in mylist
]
new_text
= ''.join
(word_list
)
con_words
= [x
for x
in jieba
.cut
(new_text
) if len(x
) >= 2]
fq
= Counter
(con_words
).most_common
()
fq
= dict(fq
)
pac_mask
= imageio
.imread
(r
'e:\boy.png')
wc
= WordCloud
(font_path
='simhei.ttf',background_color
='white',max_words
=2000,mask
=pac_mask
).fit_words
(fq
)
plt
.imshow
(wc
)
plt
.axis
('off')
plt
.show
()
wc
.to_file
('e:\\24.png')