ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python wordcloud 库 自学7

2021-02-24 12:57:21  阅读:222  来源: 互联网

标签:imageio Python photo wordcloud 词云 自学 txt 模板 图片


词云按模板填色

1、源代码

from wordcloud import WordCloud, ImageColorGenerator
# 导入绘图第三方库 matplotlib 和词云制作第三方库 wordcloud

txt = open("小王子.txt").read()
# 将外部文本存储在变量 txt 中

import imageio
# 导入处理图片输入输出第三方 imageio 库
photo = imageio.imread("alice_color.png")
# 利用 imageio 库中的 imread 函数读取本地图片并将此图片对象传递给参数 photo

w = WordCloud(background_color="white", mask=photo)
# 构建并配置词云对象 w

w.generate(txt)
# 将 txt 变量传入 w 的 generate() 方法

image_colors = ImageColorGenerator(photo)
# 调用 wordcloud 库中的 ImageColorGenerator 函数、提取模板图片各部分的颜色

w.recolor(color_func=image_colors)
# 给词云对象按模板图片的颜色上色

w.to_file("wordcloud10.png")
# 将生成的词云保存为 wordcloud10.png 图片文件、保存出到当前文件夹中

3、导出图片

在这里插入图片描述

*3、补充

3.1、原生词云图 (一行三个)

在这里插入图片描述

3.2、源代码

import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
# 导入绘图第三方库 matplotlib 和词云制作第三方库 wordcloud

txt = open("小王子.txt").read()
# 将外部文本存储在变量 txt 中

import imageio
# 导入处理图片输入输出第三方 imageio 库
photo = imageio.imread("alice_color.png")
# 利用 imageio 库中的 imread 函数读取本地图片并将此图片对象传递给参数 photo

w = WordCloud(background_color="white", mask=photo)
# 构建并配置词云对象 w

w.generate(txt)
# 将 txt 变量传入 w 的 generate() 方法

image_colors = ImageColorGenerator(photo)
# 调用 wordcloud 库中的 ImageColorGenerator 函数、提取模板图片各部分的颜色

fig, axes = plt.subplots(1, 3)
# 显示原生词云图 (一行三个)、按模板图片颜色的词云图和模板图片、按左、中、右显示

axes[0].imshow(w)
# 最左边的图片显示原生词云图
axes[1].imshow(w.recolor(color_func=image_colors), interpolation="bilinear")
# 中间的图片显示按模板图片颜色生成的词云图,采用双线性插值的方法显示颜色
axes[2].imshow(photo, cmap=plt.cm.gray)
# 右边的图片显示模板图片
for ax in axes:
    ax.set_axis_off()
plt.show()

w.recolor(color_func=image_colors)
# 给词云对象按模板图片的颜色重新上色

w.to_file("wordcloud10.png")
# 将生成的词云保存为 wordcloud10.png 图片文件、保存出到当前文件夹中

标签:imageio,Python,photo,wordcloud,词云,自学,txt,模板,图片
来源: https://blog.csdn.net/weixin_51927215/article/details/114017492

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有