Python词云生成库wordcloud详解
目录
库简介
WordCloud是Python优秀的词云展示第三方库,通过文本词频分析实现数据可视化。主要特点:
- 支持自定义形状、颜色、字体
- 自动过滤停用词和短词
- 智能布局算法
- 输出多种图片格式(PNG/JPG等)
安装方法
pip install wordcloud
一、基本使用三步走
1. 创建词云对象
from wordcloud import WordCloud
# 基础配置
wc = WordCloud(
width=800, # 图片宽度(px)
height=600, # 图片高度(px)
background_color='white' # 背景颜色
)
2. 加载文本
text = "Python is an interpreted high-level programming language"
wc.generate(text)
3. 输出图片
wc.to_file("output.png") # 支持PNG/JPG格式
二、核心配置参数
参数 | 说明 | 默认值 | 示例 |
---|---|---|---|
width | 画布宽度 | 400 | 1600 |
height | 画布高度 | 200 | 900 |
font_path | 字体文件路径 | None | ‘msyh.ttc’ |
max_words | 最大显示词数 | 200 | 100 |
stopwords | 停用词集合 | None | {‘the’,‘and’} |
mask | 形状蒙版 | None | numpy数组 |
background_color | 背景色 | ‘black’ | ‘#FFFFFF’ |
max_font_size | 最大字号 | None | 150 |
min_font_size | 最小字号 | 4 | 10 |
三、中文词云处理
需配合jieba
库进行中文分词:
import jieba
from wordcloud import WordCloud
text = "自然语言处理是人工智能的重要方向..."
# 中文分词处理
words = jieba.lcut(text)
text_processed = " ".join(words)
# 生成词云(需指定中文字体)
wc = WordCloud(font_path='msyh.ttc')
wc.generate(text_processed)
高级应用
自定义形状
from PIL import Image
import numpy as np
# 加载形状模板
mask = np.array(Image.open("heart.png"))
wc = WordCloud(mask=mask)
排除停用词
stopwords = {"的", "是", "在"}
wc = WordCloud(stopwords=stopwords)
四、完整示例
英文词云
from wordcloud import WordCloud
text = """Python is an interpreted, high-level,
general-purpose programming language."""
wc = WordCloud(width=800, height=600).generate(text)
wc.to_file("english_cloud.png")
中文词云
import jieba
from wordcloud import WordCloud
text = "数据分析是当今最热门的技能之一..."
words = jieba.lcut(text)
text_processed = " ".join(words)
wc = WordCloud(
font_path='msyh.ttc',
width=1200,
height=800,
background_color='white'
)
wc.generate(text_processed)
wc.to_file("chinese_cloud.png")
小结
核心知识点
- 三步流程:创建对象 -> 加载文本 -> 输出图片
- 中文处理:必须分词+指定中文字体
- 形状控制:通过mask参数实现任意图形
- 参数优化:合理配置max_words/font_size提升可视化效果
最佳实践
- 优先使用
with
语句管理文件资源 - 对大型文本使用生成器逐行处理
- 常用字体文件:微软雅黑(msyh.ttc)、思源黑体
- 推荐使用PNG格式保证清晰度
扩展学习:结合matplotlib实现交互式词云展示