[特殊字符] Python 批量生成词云:读取词频 Excel + 自定义背景 + Excel to.png 流程解析

本文展示如何用 Python 从之前生成的词频 Excel 文件中读取词频数据,结合 wordcloud 和背景图,批量生成直观美观的词云图。适用于文本分析、内容展示、报告可视化等场景。


📂 第一步:读取所有 Excel 词频文件

python 复制代码
import os
from openpyxl import load_workbook
import numpy as np
from PIL import Image
import wordcloud
import matplotlib.pyplot as plt

path = '词频'
files = [os.path.join(path, f) for f in os.listdir(path)]
maskImage = np.array(Image.open('background.png'))
  • 利用 os.listdir() 遍历词频 Excel 文件;

  • 使用 background.png 作为词云背景形状。


📈 第二步:逐文件读取词频并生成词云

python 复制代码
for file in files:
    wb = load_workbook(file)
    ws = wb.active
    wordFreq = {ws[f"A{i}"].value: ws[f"B{i}"].value
                for i in range(2, ws.max_row + 1)}

将每张 Excel 转为 dict[word] = freq,为下一步骤做准备。


🖌 第三步:用 mask 图生成词云并保存

python 复制代码
    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_colorcontour_width 增加外轮廓;

    • 控制词云尺寸、scale 参数提升清晰度;

    • 自定义停词集排除无用词。

更多实用案例,代码,素材如下:

自取链接:https://pan.quark.cn/s/a46f30accea2


🔧 拓展建议

  • 🎨 自定义颜色对特定主题关键词加亮;

  • 💾 批量处理大量文本并生成词云合集;

  • 📊 结合 wordcloud.to_image() 和 GUI 打包;

  • 📘 不仅限词频表,还可以直接用原文生成更灵活多彩的词云。


通过这套流程,你已掌握从 Excel 到词云图的全链路自动化方法!如果你还想支持 PDF 特征提取词云、生成 html 可嵌入图像,或集成到报表系统里,欢迎继续告诉我,我可以为你定制更深入的文章或脚本。

相关推荐
mudtools几秒前
.NET操作Excel:高级格式设置
c#·.net·excel·wps
测试老哥9 分钟前
软件测试之单元测试详解
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
beijingliushao22 分钟前
86-python电网可视化项目-6
开发语言·python·信息可视化·数据可视化
寒山李白1 小时前
VSCode中Python库识别的设置(关于解决VSCode中Python库引入未下载的库不显示黄色虚线的问题)
ide·vscode·python
豌豆花下猫1 小时前
Python 潮流周刊#121:工程师如何做出高效决策?
后端·python·ai
97zz1 小时前
实战排查:Java 解析 Excel 大型 导致内存溢出问题的完整解决过程
java·开发语言·spring boot·excel
Hu_go__1 小时前
线程池导入大数据量excel
excel
小小测试开发2 小时前
Python + MediaPipe 手势绘画高级应用:从基础到创意交互
开发语言·python·交互
MoRanzhi12032 小时前
12. NumPy 数据分析与图像处理入门
大数据·图像处理·人工智能·python·矩阵·数据分析·numpy
爱学习的小道长2 小时前
Python调用优云智算安装的ComfyUI服务器
服务器·开发语言·python