本文将介绍绘制指定图片(形状)的词云
1.准备数据
我这里准备了有关叶子的介绍文本(yezi.txt),长度无关紧要,比这个长几倍都是可以的
2.准备所要形状的图片
我的是一张枫叶叶子图,图片大家可以挑自己喜欢的
3.代码分析
导入词云制作库wordcloud和中文分词库jieba
# 导入词云制作库wordcloud和中文分词库jieba
import jieba
import wordcloud
导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("./input/fengye.jpg")
w = wordcloud.WordCloud(mask=mk)
构建并配置词云对象
# 构建并配置词云对象w,scale参数用法是提高清晰度
w = wordcloud.WordCloud(background_color='white',
font_path='simsun.ttc',
mask=mk,
scale=15)
中文分词
# 对来自外部文件的文本进行中文分词,得到string
file = open('./data/YeZi.txt', encoding='utf-8')
text = file.read()
textlist = jieba.lcut(text)
str = " ".join(textlist)
将str变量传入w的generate()方法,给词云输入文字
# 将str变量传入w的generate()方法,给词云输入文字
w.generate(str)
在控制台绘制并输出图像
# 在控制台绘制并输出图像
import matplotlib.pyplot as plt #绘图
plt.imshow(w,interpolation="bilinear")
plt.axis("off")
将词云图片导出到当前文件夹
# 将词云图片导出到当前文件夹
w.to_file('./output/yezi.png')
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 1 09:24:07 2020
@author: Jay-L
"""
# 导入词云制作库wordcloud和中文分词库jieba
import jieba
import wordcloud
# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("./input/fengye.jpg")
w = wordcloud.WordCloud(mask=mk)
# 构建并配置词云对象w,注意要加scale参数,提高清晰度
w = wordcloud.WordCloud(background_color='white',
font_path='simsun.ttc',
mask=mk,
scale=15)
# 对来自外部文件的文本进行中文分词,得到string
file = open('./data/YeZi.txt', encoding='utf-8')
text = file.read()
textlist = jieba.lcut(text)
str = " ".join(textlist)
# 将str变量传入w的generate()方法,给词云输入文字
w.generate(str)
# 在控制台绘制并输出图像
import matplotlib.pyplot as plt #绘图
plt.imshow(w,interpolation="bilinear")
plt.axis("off")
# 将词云图片导出到当前文件夹
w.to_file('./output/yezi.png')
报错原因:font_path错误;
解决方法参考这篇文章 python词云制作出现cannot open resource错误解决方法