需要的模块
from wordcloud import WordCloud
from collections import Counter
import imageio
import matplotlib.pyplot as plt
主要代码部分
wc = WordCloud(font_path=font,
background_color="white",
mask=mask_image,)
wc.fit_words(a) # 基于前面的词频统计
生成分为两种:词频生成或文本生成 (可以根据需求选择,词频生成需要传入字典,文本生成传入文本、列表均可)
wc.fit_words(dict) # 基于前面的词频统计
wc.generate(text) # 基于前面的文本生成
主要参数:参数只需如图三种就可完成基本词云创建
1、font_path:传入该参数字体路径(可以通过查看c盘windows中Fonts文件来选择自己想要的字体)
2、mask:传入图片对象,可以通过imageio模块中imread()函数来读取图像,注意图像要求黑白(WordCloud对象可以根据传入的图片像素宽高来自动设置,如果像素过小,会导致生成结果不清晰)
3、backgroud_color:该参数可以设置背景颜色
font = "C:/Windows/Fonts/FZSTK.TTF"
mask_image = imageio.v2.imread("鲁迅1.png")
background_color = "white"
完整代码展示
from wordcloud import WordCloud
from collections import Counter
import imageio
import matplotlib.pyplot as plt
dict = dict(Counter(contents)) #用Counter函数统计词频,并转换为字典
font = "C:/Windows/Fonts/FZSTK.TTF"
mask_image = imageio.v2.imread("鲁迅1.png")
wc = WordCloud(font_path=font,
background_color="white",
mask=mask_image,)
wc.fit_words(dict) #字频生成可与文本生成互换
plt.imshow(wc) #展示图像
plt.axis("off") #去除坐标刻度
plt.show()
wc.to_file("djakl.png") #保存图像
注意传入的对象是列表可以这样生成,如果传入的是一段句子,建议使用断词处理一下,并结合WordCloud对象其他参数处理,再生成。