上一篇咱们拆解了中文分词神器jieba库,那分好的词汇,怎么才能做出好看的可视化效果,告别枯燥的文字列表?📝
答案很简单——直接安排Python轻量化可视化神器wordcloud词云库!作为jieba的“最佳搭档”,它能把分词后的文本,一键转换成颜值拉满的词云图,词汇频率越高、展示越大,核心重点一眼抓住,不管是做汇报、发朋友圈、做数据分析,都高级又吸睛

wordcloud是Python专门用于生成词云图像的第三方库,主打一个轻量、易用、颜值高,不需要懂复杂的可视化原理,也不用精通绘图代码,几行命令就能把文本数据转化为视觉化词云。
它的核心逻辑很简单:自动统计文本中各个词汇的出现频次,频次越高的词语字号越大、越醒目,频次低的词语字号偏小,直观呈现文本核心内容,完美解决“纯文字不直观、数据汇报太枯燥”的痛点。
☁️ 文本可视化:配合jieba处理中文,生成干净规整的词云,解决中文展示乱码问题;
📊 职场汇报:PPT配图、数据分析总结、舆情热点展示,比表格更有说服力;
🎨 创意制作:节日祝福图、个人文案总结、热点话题梳理、朋友圈创意配图;
🔍 文本分析:快速抓取文章、评论、报告核心关键词,省去手动统计麻烦;
🎁 定制礼物:专属纪念词云、情话词云、工作总结词云,小众又有心意。
划重点:处理英文可直接用,处理中文必须搭配jieba分词,这也是咱们先讲jieba的原因,两篇联动才能完美避坑!
wordcloud安装超简单,无复杂依赖,同时别忘了保留上一篇安装的jieba库,处理中文必备,命令行直接运行即可:
# 安装wordcloud核心库pip install wordcloud# 网速慢/安装失败,用清华镜像源加速pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple

wordcloud默认不支持中文,直接生成中文词云会出现方框乱码,必须解决两个问题:一是用jieba做好中文分词,二是指定系统中文字体路径,后面会详细讲解,彻底告别乱码困扰。

(中文乱码)
wordcloud的核心用法很固定,分为文本准备→配置参数→生成词云→保存图片四步,英文和中文仅在文本预处理上有区别,代码逐行注释,复制就能运行。
英文单词自带空格分隔,不需要额外处理,直接传入文本即可生成,适合快速上手体验:
from wordcloud import WordCloud# 准备英文文本text = "Python data visualization wordcloud jieba coding beginner data analysis"# 基础词云配置wc = WordCloud(width=800, # 词云图片宽度height=600, # 词云图片高度background_color="white", # 背景颜色(白色/黑色/透明都可)max_words=100, # 最大展示的词汇数量contour_width=1, # 词汇边框宽度contour_color="lightblue" # 边框颜色)# 生成词云wc.generate(text)# 保存为本地图片wc.to_file("english_base_wordcloud.png")print("基础英文词云生成成功!")

这是最常用的场景,用上一篇学到的jieba精准分词,再指定中文字体,彻底解决乱码问题:
from wordcloud import WordCloudimport jieba# 1. 中文文本准备(日常文章、评论、文案都可)cn_text = "Python零基础 中文分词 jieba库 词云可视化 数据分析 职场技能 干货分享 编程入门"# 2. jieba精确模式分词(承接上一篇知识)word_list = jieba.lcut(cn_text)# 3. 用空格连接分词结果,适配wordcloud读取split_text = " ".join(word_list)# 4. 中文词云配置(核心:指定中文字体路径)wc = WordCloud(width=800,height=600,background_color="white",font_path="/System/Library/Fonts/STHeiti Light.ttc",max_words=80, # 控制词汇数量,避免杂乱min_font_size=10, # 最小字体大小max_font_size=60 # 最大字体大小)# 生成并保存wc.generate(split_text)wc.to_file("chinese_base_wordcloud.png")print("中文无乱码词云生成成功!")

基础矩形词云太普通?这些进阶花式用法,不用改动核心逻辑,简单调整参数,就能做出独一无二的创意词云,新手也能轻松拿捏👇
最受欢迎的玩法!利用蒙版图片(mask),把词云做成任意形状,爱心、星星、云朵、动物、人物轮廓都可以,颜值直接翻倍。
💡 小技巧:蒙版图片建议用白底黑轮廓的PNG图,生成效果最规整,不会出现杂边。
from wordcloud import WordCloudimport jiebaimport numpy as npfrom PIL import Image# 1. 加载自定义蒙版(形状图片)mask_img = np.array(Image.open("heart_mask.png")) # 爱心蒙版示例# 2. 中文文本+分词text = "在中文文本分析中...词云!"split_text = " ".join(jieba.lcut(text))# 3. 形状词云配置wc = WordCloud(mask=mask_img, # 核心:传入蒙版图片background_color="white",font_path="/System/Library/Fonts/STHeiti Light.ttc",)wc.generate(split_text)wc.to_file("shape_wordcloud.png")

不用单一颜色,自带渐变配色方案,也可自定义配色,做出彩虹、复古、清新等不同风格,适配不同场景。
wc = WordCloud(width=800,height=600,background_color="black",font_path="/System/Library/Fonts/STHeiti Light.ttc",colormap="rainbow", # 渐变contour_width=1)# 自定义配色函数(专属颜色)def custom_color(word, font_size, *args, **kwargs):return f"rgb(255, {150+font_size}, {200+font_size})"# 调用自定义配色wc = WordCloud(color_func=custom_color)

文本里的“的、了、吗、呢、啊”等虚词,没有实际意义,会影响核心关键词展示,设置停用词列表,自动过滤,让词云更干净。
# 定义停用词列表stop_words = {"的", "了", "是", "在", "和", "吗", "呢", "啊", "我", "你", "他"}# 配置词云时加入停用词wc = WordCloud(stopwords=stop_words,...)
wordcloud高频核心参数
- width/height:词云图片宽高,调大生成高清图
- background_color:背景色(支持英文/十六进制,transparent=透明)
- font_path:中文字体路径(解决中文乱码核心)
- mask:自定义形状蒙版图片
- max_words:最大展示词汇数
- stopwords:停用词集合,过滤无效词汇
- colormap:内置渐变配色
- contour_width/contour_color:形状边框宽度与颜色
- min_font_size/max_font_size:字体大小范围
往期回顾:
Python中文分词神器jieba|精准拆分文本,数据分析必备!
用Python Pygame做小游戏|从设计到算法,手把手复刻经典款