[特殊字符] Python 批量生成词云:读取词频 Excel + 自定义背景 + Excel to.png 流程解析
本文展示如何用 Python 从之前生成的词频 Excel 文件中读取词频数据,结合 wordcloud
和背景图,批量生成直观美观的词云图。适用于文本分析、内容展示、报告可视化等场景。
📂 第一步:读取所有 Excel 词频文件
import os
from openpyxl import load_workbook
import numpy as np
from PIL import Image
import wordcloud
import matplotlib.pyplot as pltpath = '词频'
files = [os.path.join(path, f) for f in os.listdir(path)]
maskImage = np.array(Image.open('background.png'))
-
利用
os.listdir()
遍历词频 Excel 文件; -
使用
background.png
作为词云背景形状。
📈 第二步:逐文件读取词频并生成词云
for file in files:wb = load_workbook(file)ws = wb.activewordFreq = {ws[f"A{i}"].value: ws[f"B{i}"].valuefor i in range(2, ws.max_row + 1)}
将每张 Excel 转为 dict[word] = freq
,为下一步骤做准备。
🖌 第三步:用 mask 图生成词云并保存
wc = wordcloud.WordCloud(font_path='C:/Windows/Fonts/simhei.ttf',mask=maskImage,max_words=500,max_font_size=100)wc.generate_from_frequencies(wordFreq)basename = os.path.splitext(os.path.basename(file))[0][:4]wc.to_file(f"词云图/{basename}.png")plt.imshow(wc)plt.axis('off')plt.show()
-
generate_from_frequencies()
直接基于词频生成词云,是推荐方式 Kaggle+15Medium+15topcoder.com+15; -
传入
maskImage
时词云会按背景形状生成 GitHub+1Medium+1; -
font_path
设置常用中文黑体避免乱码; -
to_file()
将结果保存为 PNG,同时用matplotlib
展示。
🖼️ 结果展示区
✅ 小结与注意事项
-
使用
generate_from_frequencies()
避免文本分词误差 holisticseo.digital; -
mask 图需确保背景为白色(RGB 255),否则可能形状识别失败 Stack Overflow;
-
可以优化方式包括:
-
使用
ImageColorGenerator
从背景图提取配色 GitHub+7peritract.github.io+7Stack Overflow+7; -
添加
contour_color
与contour_width
增加外轮廓; -
控制词云尺寸、
scale
参数提升清晰度; -
自定义停词集排除无用词。
-
更多实用案例,代码,素材如下:
自取链接:https://pan.quark.cn/s/a46f30accea2
🔧 拓展建议
-
🎨 自定义颜色对特定主题关键词加亮;
-
💾 批量处理大量文本并生成词云合集;
-
📊 结合
wordcloud.to_image()
和 GUI 打包; -
📘 不仅限词频表,还可以直接用原文生成更灵活多彩的词云。
通过这套流程,你已掌握从 Excel 到词云图的全链路自动化方法!如果你还想支持 PDF 特征提取词云、生成 html 可嵌入图像,或集成到报表系统里,欢迎继续告诉我,我可以为你定制更深入的文章或脚本。