怎样用Python生成词云图?wordcloud可视化指南

来源:微信开发网作者:松本一香头衔:网络博主
导读:本期聚焦于小伙伴创作的《怎样用Python生成词云图?wordcloud可视化指南》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《怎样用Python生成词云图?wordcloud可视化指南》有用,将其分享出去将是对创作者最好的鼓励。

使用Python生成词云图是文本可视化分析的常用手段,核心依赖wordcloud库,配合jieba分词、matplotlib展示等工具,就能快速实现从文本到词云的转换。

怎样用Python生成词云图?wordcloud可视化指南

环境准备与安装

首先需要安装所需的第三方库,核心库为wordcloud,处理中文文本需要jieba分词库,展示结果需要matplotlib库,执行以下命令即可完成安装:

pip install wordcloud jieba matplotlib

基础词云生成流程

生成词云的核心步骤分为四步:准备文本数据、处理文本(中文需要分词)、生成词云对象、展示或保存词云图。下面通过一个英文文本的例子演示基础流程:

# 导入所需库
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 准备文本数据
text = "Python is a popular programming language. Python is easy to learn. Python is widely used in data analysis and machine learning."

# 创建词云对象,设置基本参数
wc = WordCloud(width=800, height=400, background_color="white")

# 生成词云
wc.generate(text)

# 展示词云图
plt.figure(figsize=(10, 5))
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()

# 保存词云图到本地
wc.to_file("basic_wordcloud.png")

中文词云生成注意事项

中文文本和英文不同,没有天然的空格分隔词汇,直接使用wordcloud生成会出现乱码和分词错误,需要先使用jieba进行分词处理,同时指定支持中文的字体路径,避免中文显示为方框。

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 中文文本数据
chinese_text = "Python是一门非常流行的编程语言,Python语法简洁易学,在数据分析、人工智能、Web开发等领域都有广泛应用。"

# 使用jieba分词,用空格连接分词结果
seg_list = jieba.lcut(chinese_text)
processed_text = " ".join(seg_list)

# 创建词云对象,指定中文字体路径,Windows系统一般在C:WindowsFontsmsyh.ttc,Mac系统可指定/System/Library/Fonts/PingFang.ttc
wc = WordCloud(
    width=800,
    height=400,
    background_color="white",
    font_path="msyh.ttc",  # 替换为你的中文字体实际路径
    collocations=False  # 关闭重复词对统计,避免重复展示
)

# 生成词云
wc.generate(processed_text)

# 展示结果
plt.figure(figsize=(10, 5))
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()

常用参数配置说明

wordcloud提供了丰富的参数用于自定义词云样式,以下是常用参数的说明:

参数名参数说明默认值
width词云图的宽度,单位为像素400
height词云图的高度,单位为像素200
background_color词云图的背景颜色black
font_path字体文件路径,中文必须指定None
max_words显示的最大词汇数量200
colormap词云的颜色映射,可选值参考matplotlib的colormapviridis
mask掩码数组,用于指定词云的形状,传入二维数组即可None

自定义词云形状

如果需要生成特定形状的词云,可以使用mask参数,先读取一张黑白形状的图片,将图片转换为数组作为掩码传入即可。注意图片的白色部分会作为留白区域,非白色部分会填充词汇。

import numpy as np
from PIL import Image
from wordcloud import WordCloud
import jieba
import matplotlib.pyplot as plt

# 读取形状图片,转换为数组
mask_image = np.array(Image.open("shape.png"))  # 替换为你的形状图片路径

# 准备中文文本并处理
text = "数据可视化 词云图 Python wordcloud 中文分词 数据分析 机器学习 人工智能"
seg_list = jieba.lcut(text)
processed_text = " ".join(seg_list)

# 创建词云对象,传入mask参数
wc = WordCloud(
    background_color="white",
    font_path="msyh.ttc",  # 替换为你的中文字体路径
    mask=mask_image,
    max_words=100,
    colormap="rainbow"
)

# 生成并展示词云
wc.generate(processed_text)
plt.figure(figsize=(10, 10))
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()

常见问题解决

  • 中文显示为方框:没有指定font_path参数,需要设置为系统中存在的中文字体路径。
  • 分词结果不准确:可以使用jieba的add_word方法添加自定义词汇,或者加载自定义词典提升分词准确率。
  • 词云形状不符合预期:检查mask图片的黑白对比是否清晰,白色区域为留白,非白色区域才会填充词汇。

Pythonwordcloud词云图数据可视化修改时间:2026-06-11 06:06:32

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。