如何使用python绘制词云图wordcloud(超详细)


源代码地址: https://github.com/PersistentJZH/Cloud/blob/master/cloud.py

1.所使用的第三方库

本次实例需要用到的python第三方库:jieba,matplotlib,wordcloud,PIL,numpy

2.整体思路

1.先使用 jieba库 将数据进行清洗,清洗前为txt文件,清洗后变为以空格分隔的词语字符串string。
2.将字符串string传给函数wc.generate_from_text()进行绘图即可。

3.详细说明

1.通过函数tcg()来获得函数wc.generate_from_text()所需要的字符串string。

import jieba
path = r'当前文件夹位置'
font = r'C:\Windows\Fonts\FZSTK.TTF'#电脑自带的字体
def tcg(texts):
    cut = jieba.cut(texts)  #分词
    string = ' '.join(cut)
    return string
text = (open(path+r'\cloud.txt','r',encoding='utf-8')).read()
string=tcg(text)

注意:
1.jieba.cut(texts)的作用是将texts切分为若干组词语,cut()和lcut()的不同:cut返回的是生成器,lcut返回的是列表;
2.string = ’ '.join(cut) 表示用空格将这些词语切分开,得到一个以空格分隔的词语字符串,供后面调用;

2.开始绘图。

绘制云图所使用的函数为WordCloud(参数表),此函数接受一些参数并返回一个对象wc。

wc = WordCloud(
    background_color='white',
    width=1000,
    height=800,
    mask=img_array, #设置背景图片
    font_path=font,
    stopwords=stopword
)

注意:指定mask参数时需要将图片转化为数组的形式!

img = Image.open(path+r'\background.png') #打开图片
img_array = np.array(img) #将图片装换为数组

WordCloud参数及其描述:

参数描述
width指定词云对象生成图片的宽度,默认400像素
height指定词云对象生成图片的高度,默认200像素
min_font_size指定词云中字体的最小字号,默认4号
max_font_size指定词云中字体的最大字号,根据高度自动调节
font_step指定词云中字体字号的步进间隔,默认为1
font_path指定字体文件的路径,默认None
max_words指定词云显示的最大单词数量,默认200
stop_words指定词云的排除词列表,即不显示的单词列表
mask指定词云形状,默认为长方形,需要引用imread()函数
background_color指定词云图片的背景颜色,默认为黑色

当前期工作准备好后,绘图变得异常简单,用前面产生的对象wc调用generate_from_text()方法即可完成绘图。

wc.generate_from_text(string)#绘制图片

3.下面将图片展示并保存

plt.imshow(wc)
plt.axis('off')#隐藏坐标轴
plt.show()  #显示图片
wc.to_file(path+r'\beautifulcloud.png')  #保存图片

注意:plt.imshow()函数负责对图像进行处理,并显示其格式,而plt.show()则是将plt.imshow()处理后的函数显示出来。

4.效果图

python自动将图片非白色部分填充,且图片越清晰,运行速度越快
背景图片:
背景图片
效果图:(cloud.txt文档为徒手乱打的)

在这里插入图片描述

5.源代码

源代码地址:https://github.com/PersistentJZH/Cloud/blob/master/cloud.py

如果本文对你有帮助,不妨动动你发财的小手指,举手之劳,赞有余香!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐