第四十二节课:Python词云生成库wordcloud详解

Python词云生成库wordcloud详解

目录


库简介

WordCloud是Python优秀的词云展示第三方库,通过文本词频分析实现数据可视化。主要特点:

  1. 支持自定义形状、颜色、字体
  2. 自动过滤停用词和短词
  3. 智能布局算法
  4. 输出多种图片格式(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画布宽度4001600
height画布高度200900
font_path字体文件路径None‘msyh.ttc’
max_words最大显示词数200100
stopwords停用词集合None{‘the’,‘and’}
mask形状蒙版Nonenumpy数组
background_color背景色‘black’‘#FFFFFF’
max_font_size最大字号None150
min_font_size最小字号410

三、中文词云处理

需配合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")

在这里插入图片描述


小结

核心知识点

  1. 三步流程:创建对象 -> 加载文本 -> 输出图片
  2. 中文处理:必须分词+指定中文字体
  3. 形状控制:通过mask参数实现任意图形
  4. 参数优化:合理配置max_words/font_size提升可视化效果

最佳实践

  1. 优先使用with语句管理文件资源
  2. 对大型文本使用生成器逐行处理
  3. 常用字体文件:微软雅黑(msyh.ttc)、思源黑体
  4. 推荐使用PNG格式保证清晰度

扩展学习:结合matplotlib实现交互式词云展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monday_CN

72小时打磨,值得1元认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值