想在 ppt 中插入一张炫酷的词云图片,结果国内的这些个网站、工具,除了要加公众号就是要收费。
写了个脚本实施,已经成功了,供大家参考:
环境:windows PC
基础软件:python、pip、cmd
前置命令:在 cmd 下输入 pip install jieba、pip wordcloud、pip imageio,安装第三方库
import jieba # 分词
import wordcloud # 词云
import imageio # 读入图片
import matplotlib.pyplot as plt # 显示词云图片
# 读入文本
text = open('source.txt', encoding='utf-8').read()
# 分词
cut_text = jieba.cut(text)
result = ' '.join(cut_text)
# 读入遮罩图片
mask = imageio.imread('tree.png')
# 生成词云
wc = wordcloud.WordCloud(
width = 1500, #默认宽度
height = 700, #默认高度
background_color = 'white', #背景颜色
font_path='msyh.ttc', #中文需要设置中文font的路径
mask = mask, #设置遮罩图片
scale=15 #设置字体大小
)
wc.generate(result)
# 显示词云
plt.imshow(wc)
plt.axis('off') #去掉x轴和y轴
plt.show()
# 保存词云图片
wc.to_file('wordcloud.png')
复制代码
上述代码保存为 code.py,同一文件夹下保存一个名为"tree.png"的文件,做词云的形状,保存一个名为"source.txt"的文件,存放词语。
比如我用 《西游记》人物/动物生成了这样一个词云图片:
大家看到,“昴日星官”这种词,被“jieba”给拆分了,它不理解这就是一个词,jieba 自带的词库里面没有。如果你不需要 jieba 做分词,可以这么作修改,把相关内容删掉,直接对 text 操作生图。
#以下为删除的代码
import jieba # 分词
# 分词
cut_text = jieba.cut(text)
result = ' '.join(cut_text)
#以下为修改的代码
wc.generate(text)
复制代码
齐活。
评论