如何使用python绘制词云图wordcloud(超详细)
如何使用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
如果本文对你有帮助,不妨动动你发财的小手指,举手之劳,赞有余香!
更多推荐
所有评论(0)