Python 第三方库:Word Cloud(词云图生成)

Word Cloud 是 Python 中用于生成词云图(Word Cloud)的可视化工具库。词云图是一种数据可视化形式,它根据词语出现的频率自动调整字体大小,从而突出文本中的关键词。该库可与 matplotlib、PIL、numpy 等常用库结合使用,广泛用于文本分析、舆情可视化、报告展示等场景。

安装:

nginx 复制代码
pip install wordcloud

常见应用场景:

(1)文本挖掘后的关键词可视化展示。

(2)舆情分析、微博评论、新闻语料可视化。

(3)演示文稿中的亮点展示。

(4)网页或应用中的创意文字视觉元素。

◆ ◆

核心概念

1、文本输入

可传入纯文本字符串或词频字典。

2、字体控制

可设置字体路径、字体大小等。

3、形状遮罩

可使用图像遮罩(如爱心形、五角星)控制词云形状。

4、背景色与配色方案

支持自定义颜色或配色函数。

5、中文词云

需设置中文字体文件路径,否则会乱码。

◆ ◆

应用举例

例 1:从英文文本生成基础词云

javascript 复制代码
from wordcloud import WordCloudimport matplotlib.pyplot as plt
text = "Python is a powerful language. It is widely used in data science and AI."
wc = WordCloud(width=800, height=400, background_color="white").generate(text)
plt.imshow(wc, interpolation="bilinear")plt.axis("off")plt.show()

例 2:生成中文词云(需指定字体)

python 复制代码
from wordcloud import WordCloudimport matplotlib.pyplot as plt
text = "人工智能 数据挖掘 机器学习 深度学习 神经网络 编程 Python"
wc = WordCloud(font_path="msyh.ttc",  # 微软雅黑,需替换为本地中文字体路径               width=800, height=400,               background_color="white").generate(text)
plt.imshow(wc, interpolation="bilinear")plt.axis("off")plt.show()

例 3:使用词频字典生成词云

apache 复制代码
from wordcloud import WordCloudimport matplotlib.pyplot as plt
freq_dict = {"Python": 50, "AI": 30, "Data": 20, "Machine": 10}
wc = WordCloud(width=800, height=400, background_color="white").generate_from_frequencies(freq_dict)
plt.imshow(wc, interpolation="bilinear")plt.axis("off")plt.show()

例 4:使用图像遮罩生成特定形状词云

python 复制代码
from wordcloud import WordCloudimport numpy as npfrom PIL import Imageimport matplotlib.pyplot as plt
mask = np.array(Image.open("heart_shape.png"))  # 遮罩图像
text = "Love Python Programming Data Science"
wc = WordCloud(mask=mask, background_color="white").generate(text)
plt.imshow(wc, interpolation="bilinear")plt.axis("off")plt.show()

例 5:自定义配色函数

python 复制代码
from wordcloud import WordCloudimport random
def my_color_func(word, font_size, position, orientation, random_state=None, **kwargs):    return "hsl(%d, 70%%, 50%%)" % random.randint(0, 255)
wc = WordCloud(font_path="msyh.ttc", background_color="white", color_func=my_color_func)wc.generate("Python 编程 数据分析 AI 学习 科技 未来")wc.to_file("colorful_wordcloud.png")

◆ ◆

常用 API 与方法速览

WordCloud(...)

创建词云对象。

参数:常用

width / height: 图像尺寸(像素)

font_path: 字体路径(生成中文必须)

background_color: 背景色

mask: 遮罩图像(决定词云形状)

color_func: 自定义颜色函数

返回:WordCloud 对象。

.generate(text)

从纯文本字符串生成词云。

参数:

text: 一段包含词语的文本

返回:当前 WordCloud 实例(支持链式调用)。

.generate_from_frequencies(freq_dict)

从词频字典生成词云。

参数:

freq_dict: 如 {'Python': 100, 'AI': 80}

返回:当前 WordCloud 实例。

.recolor(color_func=None)

使用指定配色函数重新着色词云。

参数:

color_func: 接收 word 等参数并返回颜色的函数

返回:着色后的词云对象。

.to_file(filename)

将词云保存为图像文件。

参数:

filename: 文件路径,如 "cloud.png"

返回:无。

◆ ◆

补充说明

1、词云中文字的大小由词频决定,但不建议用于精确表达数值,只适合视觉强调。

2、中文支持必须设置 font_path,推荐使用系统字体如:

Windows:msyh.ttc、simhei.ttf

macOS:/System/Library/Fonts/PingFang.ttc

3、图像遮罩需为单通道或灰度图,形状通过非白色区域裁剪。

4、可以配合 jieba 分词库使用处理中文自然语言文本。

"点赞有美意,赞赏是鼓励"

相关推荐
froginwe111 分钟前
MongoDB 删除数据库
开发语言
Java小混子2 分钟前
golang项目CRUD示例
开发语言·后端·golang
想搞艺术的程序员5 分钟前
Go 优雅关闭实践指南:从原理到框架落地
开发语言·后端·golang
m5655bj9 分钟前
Python 查找并高亮显示指定 Excel 数据
开发语言·python·excel
洛克希德马丁32 分钟前
Qt 配置Webassemble环境
开发语言·qt·webassembly·emscripten·emsdk
武子康32 分钟前
Java-167 Neo4j CQL 实战:CREATE/MATCH 与关系建模速通 案例实测
java·开发语言·数据库·python·sql·nosql·neo4j
自由的好好干活35 分钟前
C#桌面框架与Qt对比及选型(国产操作系统开发视角)
开发语言·qt·c#
upward_tomato39 分钟前
python中模拟浏览器操作之playwright使用说明以及打包浏览器驱动问题
开发语言·python
为你写首诗ge43 分钟前
【python】python安装使用pytorch库环境配置
pytorch·python
lsx20240644 分钟前
jEasyUI 合并单元格详解
开发语言