想在 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)
复制代码
齐活。
评论