Python之wordcloud库的使用
1. wordcloud库简介
wordcloud是优秀的词云展示第三方库,它能够将一段文本变成一个词云。
词云:将词语通过图形可视化的方式直观和艺术的展示出来。
2. wordcloud库安装
cmd命令行下:
pip install wordcloud
3. wordcloud库的基本使用
wordcloud库把词云当作一个WordCloud对象
-
wordcloud.WordCloud()代表一个文本对应的词云
-
可以根据文本中词语出现的频率等参数绘制词云
-
词云的绘制形状、尺寸和颜色都可以设定
wordcloud库常规方法
wordcloud对具体词云的绘制有一个基本的思路,它的思路是用wordcloud中的WordCloud来表名一个词云。以WorldCloud对象为基础。
w = wordcloud.WordCloud()
方法 | 描述 |
---|---|
w.generate(txt) | 向WordCloud对象w中加载文本txt |
w.to_file(filename) | 将词云输出为图像文件,.png或.jpg格式 |
例如:
>>>w.generate( "Python and WordCloud" )
>>>w.to_file( "outfile.png" )
词云绘制步骤:
import wordcloud
c = wordcloud.WordCloud() #步骤1:配置对象参数
c.generate("wordcloud by Python") #步骤2:加载词云文本
c.to_file("pywordcloud.png") #步骤3:输出词云文件
从文本生成词云,wwordcloud库做了9件事情:
- ① 分隔:以空格分隔单词
- ② 统计: 单词出现次数并过滤。出现次数多的单词显示效果就会变的很大,反之就小
- ③ 字体: 根据统计配置字号
- ④ 布局: 颜色环境尺寸
配置对象参数
w = wordcloud.WordCloud(<参数>)
参数 | 描述 |
---|---|
width | 指定词云对象生成图片的宽度,默认400像素 |
height | 指定词云对象生成图片的高度,默认200像素 |
min_font_size | 指定词云中字体的最小字号,默认4号 |
max_font_size | 指定词云中字体的最大字号,根据高度自动调节 |
font_step | 指定词云中字体字号的步进间隔,默认为1 |
font_path | 指定字体文件的路径,默认None |
max_words | 指定词云显示的最大单词数量,默认200 |
stop_words | 指定词云的排除词列表,即不显示的单词列表 |
mask | 指定词云形状,默认为长方形,需要引用imread()函数 |
background_color | 指定词云图片的背景颜色,默认为黑色 |
例子
>>>w=wordcloud.WordCloud(width=600)
>>>w=wordcloud.WordCloud(height=400)
>>>w=wordcloud.WordCloud(min_font_size=10)
>>>w=wordcloud.WordCloud(max_font_size=20)
>>>w=wordcloud.WordCloud(font_step=2)
>>>w=wordcloud.WordCloud(font_path="msyh.ttc")
>>>w=wordcloud.WordCloud(max_words=20)
>>>w=wordcloud.WordCloud(stop_words={"Python"})
# 指定词云形状
>>>from scipy.misc import imread
>>>mk=imread("pic.png")
>>>w=wordcloud.WordCloud(mask=mk)
# 指定词云背景色
>>>w=wordcloud.WordCloud(background_color="white")
注:在将中文构成词云的时候,它是用空格来去分隔单词的,在中文中我们没有办法使用空格来区分单词,所以在用中文形词云的时候,首先需要对中文文本进行分词。中文分词使用 jieba 库,关于jieba库的使用请参考文章:https://www.cnblogs.com/keepcode/p/14436010.html
中文生词词云实例
import jieba
import wordcloud
txt = "程序设计语言是计算机能够理解和\
识别用户操作意图的一种交互体系,它按照\
特定规则组织计算机指令,使计算机能够自\
动进行各种运算处理。"
w = wordcloud.WordCloud( width=1000,\
font_path = "msyh.ttc",height=700)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("pywcloud.png")
jieba.lcut(txt)
将 txt 文本分词并生成一个列表变量,其中过的每一个元素是分隔之后的单词。我们需要这样的单词以文本的形式由空格来分隔组成。
使用 "".join
函数将这样的列表由空格将各个元素组织起来。
使用w.generate()
加载一段(" ".join(jieba.lcut(txt)))
的内容。
以上内容资料均来源于中国大学MOOC网-北京理工大学Python语言程序设计课程
课程地址:https://www.icourse163.org/course/BIT-268001
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下