使用wordcloud模块,绘制一个自定义的词云图形状

WordCloud模块中的图片形状词云生成教程
本文介绍了如何使用Python的WordCloud模块生成不同形状的词云图,包括不按图片颜色和按图片颜色两种方式,以及所需的相关库和步骤。

WordCloud模块中生成不同形状的词云图,可以通过使用mask功能来实现。首先,需要准备一张素材图片,如上图所示,网页搜的图片,有时间的话自己Ps扣一下背景图,这样显示的效果更好,该图片将被用作词云的形状。然后,使用imread函数从imageio库中导入该图片。接下来,使用WordCloud对象生成词云,然后使用to_file或to_array方法将生成的词云保存为图像。

涉及到的小知识点:

  • 准备一个素材图片,背景为白色

  • open函数读取本地txt的方法

  • 词云图相关模块的基本使用

01不按图片素材颜色生成词云图

# 导入词云制作库
import jieba
import wordcloud
import imageio

#读取本地图片,作为词云形状图片
mk = imageio.imread("刘亦菲.png")
w = wordcloud.WordCloud(mask=mk)

#构建词云对象w
w = wordcloud.WordCloud(background_color='white',
                        font_path='simkai.ttf',
                        mask=mk)

#读取txt文本数据
f = open('李白.txt',encoding='utf-8')
text= f.read()
text_list = jieba.lcut(text)
string = " ".join(text_list)

# 将string变量传入w的generate()方法,给词云输入文字
w.generate(string)

# 将词云图片导出到当前文件夹
w.to_file('词云图.png')

02按图片素材颜色生成词云图

import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator

# 1.定义文本内容
text='wdPython'
# 2.读取本地图片素材,作为词云形状图片
import imageio
mk = imageio.imread("刘亦菲.png")

# 3.构建词云对象w
wc = WordCloud(background_color="white",
               mask=mk,
               repeat=True,
               font_path='simkai.ttf')
# 4.将text字符串变量传入w的generate()方法,给词云输入文字
wc.generate(text)

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

# 5.显示默认词云图、按素材颜色的词云图和素材图片,按左、中、右显示
fig, axes = plt.subplots(1, 3)
# 最左边的是默认词云图
axes[0].imshow(wc)
# 中间的是按素材颜色的词云图,采用双线性插值的方法显示颜色
axes[1].imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
# 右边是素材图片
axes[2].imshow(mk, cmap=plt.cm.gray)
for ax in axes:
    ax.set_axis_off()
plt.show()

# 给词云对象按模板图片的颜色重新上色
wc_color = wc.recolor(color_func=image_colors)
# 6.将词云图片导出到当前文件夹
wc_color.to_file('词云图.png')

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
若有侵权,请联系删除
### 绘制词云图的方法 #### 使用Python绘制词云图Python中,可以利用`wordcloud`库来生成词云图。以下是具体实现方式: 1. **安装必要的依赖包** 需要先确保已安装以下库:`matplotlib`, `wordcloud`, `PIL (Pillow)` 和 `jieba`。可以通过pip命令完成安装: ```bash pip install matplotlib wordcloud pillow jieba numpy ``` 2. **导入所需模块** 下面是所需的模块及其功能说明[^2]: - `matplotlib.pyplot`: 用于绘图和数据可视化。 - `wordcloud.WordCloud`: 提供核心的词生成功能。 - `PIL.Image`: 处理图像文件。 - `jieba`: 中文分词工具。 - `numpy`: 进行矩阵运算。 3. **准备文本数据并进行预处理** 如果文本为中文,则需使用`jieba`对其进行分词操作;如果是英文则无需此步骤。下面是一个简单的例子,演示如何加载文本并将其转换成适合输入的形式: ```python text = open('example.txt', 'r').read() # 假设有一个名为 example.txt 的文档 words_list = jieba.lcut(text) # 对于中文文本执行分词 processed_text = " ".join(words_list) # 将列表中的单词连接起来形成字符串 ``` 4. **创建WordCloud对象并生成词** 设置一些基本参数如背景颜色、最大字体大小等之后,调用generate函数传入处理后的文本即可生成词: ```python wc = WordCloud( background_color="white", # 背景颜色 max_words=2000, # 显示的最大词数 font_path='simhei.ttf', # 字体路径(对于中文非常重要) width=800, height=400 ) wc.generate(processed_text) ``` 5. **显示或保存词云图** 利用`matplotlib`展示或者直接保存到本地磁盘上: ```python plt.figure(figsize=(10, 5)) plt.imshow(wc, interpolation='bilinear') plt.axis("off") # 不显示坐标轴 plt.show() wc.to_file("output.png") # 可选:将结果保存至 output.png 文件 ``` #### 注意事项 为了获得更高质量的词云图,在实践中还需要注意以下几个方面[^3]: - 文本的选择应具有代表性; - 参数调整可以根据实际情况灵活变化,比如改变形状、颜色映射等功能; - 自定义遮罩图形可以使最终呈现更具创意性和针对性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值