本文最后更新于1025 天前,其中的信息可能已经过时,如有错误请发送邮件到2192492965@qq.com
基本使用
wordcloud 库把词云当作一个WordCloud对象
- wordcloud.WordCloud()代表一个文本对应的词云
- 可以根据文本中词语出现的频率等参数绘制词云
- 绘制词云的形状、尺寸和颜色均可设定
- 以WordCloud对象为基础,配置参数、加载文本、输出文件
常规方法
w= wordcloud.WordCloud()
| 方法 | 描述 |
|---|---|
| w.generate() | 向WordCloud对象中加载文本txt >>>w.generate("Python and WordCloud") |
| w.to_file(filename) | 将词云输出为图像文件,.png或.jpg格式 >>>w.to_file("outfile.png") |
import wordcloud
c=wordcloud.WordCloud() #1.配置对象参数
c.generate("wordcloud by python") #2.加载词云文本
c.to_file("pywordcloud.png") #3.输出词云文件1234
wordcloud如何将文本转化为词云
- 1.分隔:以空格分隔单词
- 2.统计:单词出现次数并过滤
- 3.字体:根据统计配置字号
- 4.布局:颜色环境尺寸
WordCloud类参数
| 参数 | 描述 |
|---|---|
| width | 指定词云对象生成图片的宽度,默认400像素 w=wordcloud.WordCloud(width=600) |
| height | 指定词云对象生成图片的高度,默认200像素 w=wordcloud.WordCloud(height=400) |
| min_font_size | 指定词云中字体的最小字号,默认4号 w=wordcloud.WordCloud(min_font_size=10) |
| max_font_size | 指定词云中字体的最大字号,根据高度自动调节 w=wordcloud.WordCloud(max_font_size=20) |
| font_step | 指定词云中字体字号的步进间隔,默认为1 w=wordcloud.WordCloud(font_step=2) |
| font_path | 指定文体文件的路径,默认None w=wordcloud.WordCloud(font_path="msyh.ttc") |
| max_words | 指定词云显示的最大单词数量,默认200 w=wordcloud.WordCloud(max_words=20) |
| stop_words | 指定词云的排除词列表,即不显示的单词列表 w=wordcloud.WordCloud(stop_words="Python") |
| mask | 指定词云形状,默认为长方形,需要引用imread()函数 from scipy.msc import imread mk=imread("pic.png") w=wordcloud.WordCloud(mask=mk) |
| background_color | 指定词云图片的背景颜色,默认为黑色 w=wordcloud.WordCloud(background_color="white") |
制作简易词云图
from wordcloud import WordCloud
import jieba
txt = '望不见世界的尽头,却能看见世界尽头的你'
txtNew = jieba.lcut(txt)
txtNew = ' '.join(txtNew)
# 生成词云时,wordcloud 默认会以空格或标点为分隔符对目标文本进行分词处理。
# 对于中文文本,分词处理需要由用户来完成。
# 一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数。
# 处理中文时还需要指定中文字体。
# 例如,选择了微软雅黑字体(msyh.ttf)作为显示效果,需要将该字体文件与代码存放在同一目录下或在字体文件名前增加完整路径。
WC = WordCloud(font_path='C:\\Windows\\Fonts\\STXIHEI.TTF')
WC.generate(txtNew)
WC.to_file('img/yun.jpg')
生成带背景图的词云图
- 准备一张带有透明背景的 png格式图片
- 准备一个txt文本文件,并与代码存放在同一目录下
找到一张图片,我们发现这张是有黄色背景的,于是我们需要把背景设置成透明的。

打开PS操作一下,当然你也可以直接在网上下载透明背景的图片。

import numpy as np
from PIL import Image
from wordcloud import WordCloud
mask = np.array(Image.open('img/alice2.png')) # 将图片转化为多维数组
txt = '''Alice in Wonder land script
How do you get to Wonder land
Over the hill or under land'''
WC = WordCloud(
background_color='white', # 背景颜色
width=800,
height=600,
max_words=200,
max_font_size=80,
mask=mask,
contour_width=3, # 轮廓宽度
contour_color='steelblue' # 轮廓颜色
)
WC.generate(txt)
WC.to_file('img/Alice词云.png')










