乐于分享
好东西不私藏

wordcloud:轻松搞定词云图

wordcloud:轻松搞定词云图

大家好,欢迎来到 Crossin 的编程教室。

在数据可视化的世界里,词云(Word Cloud)是最能先声夺人的工具。无论是分析年度报告,还是复盘热搜话题,一张精美的词云图总能瞬间抓牢读者的眼球。今天我们用 Python 中最经典的 wordcloud 库,带你轻松解锁这项技能。

1. 准备工作

首先安装核心工具。除了生成词云的 wordcloud,我们还需要 jieba(中文分词)和 matplotlib(绘图展示)。

pip install wordcloud jieba matplotlib

2. 快速上

中文与英文不同,单词间没有空格。我们需要先用 jieba 拆词,再交给 wordcloud。注意: 必须指定系统字体路径(如微软雅黑)以防止中文乱码。

import jiebafrom wordcloud import WordCloudimport matplotlib.pyplot as plt# 1. 准备文本,可从文件读入text = "Python可视化非常强大,词云工具wordcloud是经典之选。数据分析、人工智能。"# 2. 中文分词并用空格连接words = " ".join(jieba.lcut(text)) # 中文分词# 3. 生成词云wc = WordCloud(    font_path='msyh.ttc'# Windows常用字体,Mac可用 STHeiti Light.ttc    width=800, height=400    background_color='white').generate(words)# 4. 展示与保存plt.imshow(wc, interpolation='bilinear')plt.axis('off')plt.show()

3. 定制形状

矩形太单调?我们可以通过 Mask(蒙版) 功能,让词云填满任何形状。你只需准备一张白底黑图(如心形、猫咪)。

import numpy as npfrom PIL import Imagemask_img = np.array(Image.open("heart.png")) # 加载形状图wc = WordCloud(    font_path='msyh.ttc',    mask=mask_img,     contour_width=1    contour_color='steelblue').generate(words)

4. 更多用法

过滤无意义词汇(Stopwords)

如果词云里全是“的”、“了”、“是”,会显得很不专业。我们可以自定义一个停用词表。

from wordcloud import STOPWORDSstopwords = set(STOPWORDS)stopwords.update(["的""了""是"]) # 增加中文干扰词wc = WordCloud(font_path='msyh.ttc', stopwords=stopwords).generate(words)

基于词频精确绘图

如果你已经统计好了词频字典,或者对生成的词语大小不满意,可以手动设置。

frequencies = {'Python'100'数据分析'80}wc = WordCloud(font_path='msyh.ttc').generate_from_frequencies(frequencies)

解决图片模糊问题

通过 scale 参数放大渲染倍数,生成的图片会清晰很多,适合打印或高清展示。

# scale=2 表示像素放大两倍wc = WordCloud(font_path='msyh.ttc', width=400, height=200, scale=2).generate(words)

结语

词云是艺术与数据的结合。当你把枯燥的文本变成有张力的视觉图时,数据就有了灵魂。

今日挑战:动手试一下,做一张你最爱电影的影评词云吧!

如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~


Crossin的新书《码上行动:用ChatGPT学会Python编程》已经上市了。本书以ChatGPT为辅助,系统全面地讲解了如何掌握Python编程,适合Python零基础入门的读者学习。【点此查看详细介绍】
购买后可加入读者交流群,Crossin为你开启陪读模式,解答你在阅读本书时的一切疑问。
Crossin的其他书籍:

添加微信 crossin123 ,加入编程教室共同学习~
感谢转发点赞的各位~
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » wordcloud:轻松搞定词云图

猜你喜欢

  • 暂无文章