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

相关推荐
2401_8321319529 分钟前
Python单元测试(unittest)实战指南
jvm·数据库·python
vx_BS813301 小时前
【直接可用源码免费送】计算机毕业设计精选项目03574基于Python的网上商城管理系统设计与实现:Java/PHP/Python/C#小程序、单片机、成品+文档源码支持定制
java·python·课程设计
gzxx2007sddx1 小时前
windows vnpy运行过程及问题记录
python·量化·vnpy
算法_小学生2 小时前
LeetCode 热题 100(分享最简单易懂的Python代码!)
python·算法·leetcode
230万光年的思念2 小时前
【无标题】
python
shengli7222 小时前
机器学习与人工智能
jvm·数据库·python
2301_765703142 小时前
Python迭代器(Iterator)揭秘:for循环背后的故事
jvm·数据库·python
追风少年ii2 小时前
多组学扩展---分子对接pyrosetta
python·数据分析·空间·单细胞
2301_821369613 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
m0_561359673 小时前
使用Kivy开发跨平台的移动应用
jvm·数据库·python