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 分词库使用处理中文自然语言文本。

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

相关推荐
B站_计算机毕业设计之家3 小时前
python股票交易数据管理系统 金融数据 分析可视化 Django框架 爬虫技术 大数据技术 Hadoop spark(源码)✅
大数据·hadoop·python·金融·spark·股票·推荐算法
小龙报3 小时前
《算法每日一题(1)--- 第31场蓝桥算法挑战赛》
c语言·开发语言·c++·git·算法·学习方法
llz_1123 小时前
五子棋小游戏
开发语言·c++·算法
liulilittle3 小时前
在 Android Shell 终端上直接运行 OPENPPP2 网关路由配置指南
android·linux·开发语言·网络·c++·编程语言·通信
weixin_432900373 小时前
口碑好的共晶贴片机公司
python·数码相机
lihongli0004 小时前
ROS与Qt结合开发CAN控制界面(发布自定义的truck_send_can1消息)
开发语言·qt·ros
java1234_小锋4 小时前
什么是Java三高架构?
java·开发语言·架构
如竟没有火炬4 小时前
全排列——交换的思想
开发语言·数据结构·python·算法·leetcode·深度优先