jupyter绘制中文词云图
时间: 2025-06-20 12:37:50 浏览: 18
### 如何在 Jupyter Notebook 中用 Python 绘制支持中文的词云图
要在 Jupyter Notebook 中生成包含中文的词云图,需完成以下几个方面的配置:
#### 1. 安装必要的库
为了生成词云图,需要安装 `wordcloud` 和 `matplotlib` 库。如果尚未安装这些库,可以在 Jupyter Notebook 的单元格中运行以下命令进行安装[^2]:
```python
!pip install wordcloud matplotlib
```
对于国内用户来说,由于网络原因可能导致安装速度较慢,建议使用清华大学开源软件镜像源加速安装过程[^1]:
```python
!pip install wordcloud matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
```
#### 2. 准备文本数据
准备一段包含中文的文字作为词云的基础素材。可以将文字保存在一个 `.txt` 文件中并读取该文件的内容,或者直接定义一个字符串变量存储文本。
假设有一个名为 `text.txt` 的文件,其中包含了要分析的中文文本,则可以通过如下方式加载文本内容:
```python
with open('text.txt', 'r', encoding='utf-8') as file:
text = file.read()
```
如果不想创建外部文件,可以直接定义一个字符串变量表示文本内容:
```python
text = """
自然语言处理是一门融合计算机科学、人工智能和统计学等多个学科的技术领域,
其目标是使机器能够理解人类的语言并与之交互。
"""
```
#### 3. 设置字体以支持中文显示
默认情况下,`wordcloud` 使用的字体可能不支持中文字符,因此需要指定一款支持中文的字体文件(如 SimHei 或 Noto Sans CJK SC)。可以从本地系统找到合适的字体文件路径,并将其传递给 `WordCloud` 对象中的参数 `font_path`。
例如,假设已经有一份位于当前目录下的字体文件 `simhei.ttf`,则可按如下方法设置:
```python
from wordcloud import WordCloud
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
wc = WordCloud(font_path='simhei.ttf', width=800, height=400,
background_color='white').generate(text)
# 显示词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis('off') # 关闭坐标轴
plt.show()
```
注意:如果没有现成的支持中文的字体文件可用,可以从互联网下载免费资源,比如 Google 提供的 [Noto 字体](https://www.google.com/get/noto/) 支持多种语言,包括简繁体中文。
#### 4. 处理中文编码问题
当涉及中文时,可能会遇到编码错误的情况。为了避免此类问题发生,在打开任何含有汉字的文档之前,请始终显式声明 UTF-8 编码格式,就像前面展示的例子那样设置了 `encoding='utf-8'` 参数一样重要。
另外,若是在绘图过程中发现中文乱码现象,可通过调整 Matplotlib 的全局 rcParams 来修正这一状况[^3]:
```python
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
```
以上两行代码的作用分别是设定无衬线字体为黑体以及禁用 Unicode 负号渲染模式,从而确保所有中文字符都能被正确呈现出来。
---
### 示例完整代码片段
下面给出了一段完整的示例程序用于演示如何利用上述步骤构建一张带有中文标注的精美词云图表:
```python
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 假设这是我们的原始文本资料
text = """\
大数据时代来临,数据分析成为热门话题。通过有效的手段挖掘隐藏于海量数据背后的价值变得越来越重要。
"""
# 创建一个新的图形窗口
plt.figure(figsize=(10, 6))
# 初始化 WordCloud 实例对象
wc = WordCloud(
font_path="simhei.ttf", # 指定使用的字体文件位置
width=800, # 图片宽度像素数
height=400, # 图片高度像素数
margin=2, # 边界大小,默认值为 None 表示自动计算边界尺寸
background_color="white" # 背景颜色选项
).generate(text) # 将传入的文本转成语料频率字典后生成最终效果
# 展示生成好的词云图案
plt.imshow(wc, interpolation="bilinear")
plt.title("Chinese Word Cloud Example")
plt.axis("off") # 隐藏掉所有的刻度标记
plt.tight_layout(pad=0) # 自动优化布局间距
plt.savefig('./chinese_word_cloud.png', dpi=300); # 另存为高质量 PNG 格式的静态图片文件
plt.show();
```
---
### 注意事项
- 如果尝试导入某些特定模块失败,可能是环境未激活或依赖项缺失所致。此时应返回 CMD 并切换至对应解释器所在的 Scripts 子目录下重新执行相关 pip 命令操作。
- 当前例子仅适用于基础场景需求;实际项目开发期间可根据具体业务逻辑进一步扩展功能特性,譬如自定义形状模板遮罩层等高级玩法。
阅读全文
相关推荐

















