[特殊字符] 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 可嵌入图像,或集成到报表系统里,欢迎继续告诉我,我可以为你定制更深入的文章或脚本。

相关推荐
AI视觉网奇41 分钟前
音频获取长度
java·前端·python
寄思~1 小时前
学习笔记:封装和单继承
开发语言·笔记·python·学习
E_ICEBLUE1 小时前
Python 操作 Word 文档:主流库对比与选择指南
开发语言·经验分享·python·word·办公自动化
倔强青铜三1 小时前
苦练Python第38天:input() 高级处理,安全与异常管理
人工智能·python·面试
xuanjiong1 小时前
Excel数据转化为Xmind思维导图全流程(含Word转化格式),实用
excel·xmind
大模型真好玩2 小时前
深入浅出LangChain AI Agent智能体开发教程(六)—两行代码LangChain Agent API快速搭建智能体
人工智能·python·agent
德育处主任Pro2 小时前
『React』 组件通信全攻略
python·opencv·matplotlib
七七软件开发2 小时前
一对一交友小程序 / APP 系统架构分析
java·python·小程序·系统架构·php
电商数据girl2 小时前
如何利用API接口与网页爬虫协同进行电商平台商品数据采集?
大数据·开发语言·人工智能·python·django·json
万粉变现经纪人3 小时前
如何解决pip安装报错ModuleNotFoundError: No module named ‘dash’问题
python·scrapy·pycharm·flask·pip·策略模式·dash