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

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