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

相关推荐
API快乐传递者几秒前
Python 爬虫获取 1688 商品详情 API 接口实战指南
java·前端·python
疯狂成瘾者几秒前
LangChain Middleware 技术解析:从“插槽机制”到 Agent 运行时控制
数据库·python·langchain
Where-12 分钟前
LangChain、LangGraph入门
python·langchain·langgraph
极光代码工作室15 分钟前
基于机器学习的垃圾短信识别系统
人工智能·python·深度学习·机器学习
2201_7568473323 分钟前
如何设置备库只接日志不应用_暂停MRP且维持网络传输的方法
jvm·数据库·python
zhaoshuzhaoshu24 分钟前
Python 语法之控制结构详解
开发语言·python
xcbrand29 分钟前
工业制造品牌全案公司找哪家
大数据·人工智能·python·制造
深蓝海拓30 分钟前
基于QtPy (PySide6) 的PLC-HMI工程项目(七)上位机通信部分的初步建设:socket客户端
网络·笔记·python·学习·plc
神秘剑客_CN32 分钟前
python安装requests及pandas
开发语言·python·pandas
人工智能AI技术34 分钟前
Python 循环基础:for、while、break、continue
python