1.词云WordCloud讲解
font_path 表示用到字体的路径
width和height表示画布的宽和高
prefer_horizontal可以调整词云中字体水平和垂直的多少
mask即掩膜,产生词云背景的区域
scale:计算和绘图之间的缩放
min_font_size设置最小的字体大小
max_words设置字体的多少
stopwords设置禁用词
background_color设置词云的背景颜色
max_font_size设置字体的最大尺寸
mode设置字体的颜色 但设置为RGBA时背景透明
relative_scaling设置有关字体大小的相对字频率的重要性
regexp设置正则表达式
collocations 是否包含两个词的搭配
2.下载模板
这里我给除一个爱心模板,大胆使用吧。
3.核心代码讲解
a) 依赖安装,因为使用的python,因此,安装wordcloud,就变得十分简单了;同时我们也使用了结巴分词,所以jieba分词也需要安装。
pip install wordcloud
pip install jieba
pip install pillow
b) 读取文件,并用结巴进行统计
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba
import os
import numpy
import PIL.Image as Image
cur_path = os.path.dirname(__file__) #当前文件的路径
print(cur_path)
text_from_file_with_apath = open(os.path.join(cur_path, '深渊主宰系统.txt'),encoding='utf-8').read() #读取文件
mask_pic = numpy.array(Image.open(os.path.join(cur_path, 'love2.jpg'))) #读取填词的模板图片
wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all=True) #jieba分词
wl_space_split = " ".join(wordlist_after_jieba)
c) 对jieba分词统计后的数据进行填充至图像当中,这里我们就会用到wordcloud,同时返回一个图像。
#mask 表示将词填充到的模板图片 font_path 表示填充的字体
my_wordcloud = WordCloud(background_color="white",mask=mask_pic, font_path=os.path.join(cur_path, '竹繁.ttf')).generate(wl_space_split)
d) 对图像进行一个显示。这里会用到图像当中的知识,如果有不理解的可以下方留言,或者看我以前的文章。
#显示词云
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
4.看看结果吧
Q&A
1、AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas' 版本问题,降低版本
pip uninstall matplotlib
pip install matplotlib==3.5.3