用Python做一张词云图,让你的文章更加生动!
随着互联网的发展,越来越多的人开始写作和创作,但是只有文字的排版显得单调乏味,无法吸引读者的眼球。而词云图作为一种非常能够吸引读者注意力的可视化展示方式,成为了很多人的首选。本文将教大家如何使用Python制作一张精美的词云图。
1. 安装相关依赖
首先需要安装几个相关依赖:
- jieba:中文分词库,用来对中文文本进行分词处理。
- wordcloud:用来生成词云图。
- numpy:数学计算库,用来对文本进行数据处理。
使用以下命令进行安装:
```
pip install jieba
pip install wordcloud
pip install numpy
```
2. 准备数据
需要准备一份文本数据,本文我们以《红楼梦》为例。将文本保存在本地,取名为“hongloumeng.txt”。代码如下:
```
with open("hongloumeng.txt", "r", encoding="utf-8") as f:
text = f.read()
```
3. 文本处理
需要先对文本进行处理,将其分词并去除一些无意义的停用词。代码如下:
```
import jieba
from collections import Counter
# 加载停用词表
stopwords = set()
with open("stopwords.txt", "r", encoding="utf-8") as f:
for line in f:
stopwords.add(line.strip())
# 分词
words = jieba.cut(text)
cnt = Counter()
# 统计词频
for word in words:
if word not in stopwords:
cnt[word] += 1
```
4. 生成词云图
使用wordcloud库生成词云图。代码如下:
```
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 导入背景图片
mask = plt.imread("background.png")
# 生成词云图
wc = WordCloud(font_path="msyh.ttf", # 字体文件
width=800, height=600, # 图片大小
background_color="white", # 背景颜色
max_words=100, # 最多显示词数
mask=mask, # 背景图片
contour_width=2, contour_color="steelblue" # 边框效果
)
# 生成词云图并保存
wc.generate_from_frequencies(cnt)
wc.to_file("wordcloud.png")
# 显示词云图
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()
```
5. 效果展示
下面是生成的词云图效果展示:

以上就是用Python生成词云图的详细步骤,通过这样的操作,可以让我们的文章更加生动、有趣,吸引更多读者的注意力。