python如何画词云图
时间: 2025-07-05 09:57:57 浏览: 8
### 使用 Python 绘制词云图
绘制词云图是一种常见的数据可视化方式,可以直观展示文本中的关键词及其重要程度。以下是完整的教程和代码示例。
#### 导入必要的库
为了实现词云图的绘制,需要安装并导入一些常用的第三方库:
```python
import jieba # 中文分词工具
from PIL import Image # 图像处理库
from wordcloud import WordCloud # 用于生成词云图的核心库
import numpy as np # 数学计算库
import matplotlib.pyplot as plt # 数据可视化库
```
这些库可以通过 `pip` 安装,例如运行以下命令来安装缺失的依赖项:
```bash
pip install pillow wordcloud jieba matplotlib
```
---
#### 加载文本文件
加载目标文本文件,并清理其中可能存在的干扰字符(如换行符、空白等)。假设输入文件名为 `"example.txt"`,编码为 UTF-8 或 GBK,则可按如下方式进行操作:
```python
text = open(r"example.txt", encoding='utf-8').read()
text = text.replace('\n', "").replace("\u3000", "") # 清理换行符和特殊空格
```
---
#### 文本分词
对于中文文本,通常需要借助 `jieba` 库进行分词处理。将分好词的结果重新组合成以空格分隔的字符串形式,以便后续传递给 `WordCloud` 对象。
```python
text_cut = jieba.lcut(text) # 利用结巴分词对文本进行切分
text_cut = ' '.join(text_cut) # 将列表转换为空格连接的字符串
```
---
#### 添加停用词表
为了避免无意义词语占据过多空间,可通过设置停用词表过滤掉常见但不重要的词汇。例如,读取百度提供的常用停用词表:
```python
stop_words = set(open(r"baidu_stopwords.txt", encoding='utf-8').read().splitlines())
```
---
#### 配置词云参数
通过配置 `WordCloud` 的属性来自定义词云样式,包括字体路径、背景颜色以及是否启用停用词等功能。
```python
word_cloud = WordCloud(
font_path="simhei.ttf", # 字体路径,需支持中文显示
background_color="white", # 背景颜色设为白色
width=800, height=400, # 设置画布大小
max_words=200, # 显示的最大单词数量
stopwords=stop_words # 停用词集合
).generate(text_cut) # 输入已预处理后的文本内容
```
> **注意**: 如果未指定有效的中文字体路径,可能会导致乱码现象发生[^1]。
---
#### 可视化与保存图片
最后一步是利用 Matplotlib 展现生成结果或将图像导出至本地磁盘存储起来。
```python
plt.figure(figsize=(10, 5)) # 创建绘图窗口
plt.imshow(word_cloud, interpolation="bilinear") # 插值算法平滑边缘效果
plt.axis('off') # 关闭坐标轴刻度线
plt.show() # 实时查看渲染成果
# 同时也可以直接保存到文件夹下
word_cloud.to_file("output_wordcloud.png")
```
---
#### 自定义形状 (可选扩展功能)
如果希望进一步美化设计风格,还可以引入外部轮廓模板作为遮罩层应用到最终作品之中。
```python
mask = np.array(Image.open("custom_shape.png")) # 提供任意 PNG 文件充当蒙版素材
wc_with_mask = WordCloud(mask=mask,
contour_width=3,
contour_color='steelblue',
prefer_horizontal=0.9).generate(text_cut)
plt.figure(figsize=(10, 5))
plt.imshow(wc_with_mask, interpolation='bilinear')
plt.axis("off")
plt.show()
wc_with_mask.to_file("masked_output.png")
```
以上即完成了基于 Python 平台构建个性化定制版本的词频统计图表制作流程说明[^2]。
---
阅读全文
相关推荐
















