当前位置: 首页 > news >正文

[特殊字符] 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_colorcontour_width 增加外轮廓;

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

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

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

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


🔧 拓展建议

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

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

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

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


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

 

 

 

 

 

http://www.dtcms.com/a/271320.html

相关文章:

  • 【踩坑】python写超长字符到excel中被截断
  • TDengine 集群部署及启动、扩容、缩容常见问题与解决方案
  • 自建ELK vs 云商日志服务:成本对比分析
  • Apache Tomcat SessionExample 漏洞分析与防范
  • AMIS全栈低代码开发
  • 【NVIDIA-H100】基于 nvidia-smi 数据H100 GPU 功耗异常深度分析与解决方案
  • PiscTrace应用:从 YOLO-Pose 到深蹲与引体向上计数:实时健身动作分析与实现
  • 语音大模型速览(二)- cosyvoice
  • Flink-1.19.0源码详解-番外补充4-JobGraph图
  • Ubuntu 下 MySql 使用
  • qt-C++笔记之布局管理`space` 和 `margin`的区别
  • SQL注入与防御-第六章-3:利用操作系统--巩固访问
  • kbmMemTable Pro 7.82 Delphi 11 源代码
  • Spectre(幽灵漏洞)是什么?
  • Python-FAQ-单例模式
  • MyBatis之数据操作增删改查基础全解
  • Java常用设计模式大全
  • Kubernetes 存储入门
  • HTTP请求走私漏洞
  • 【Python】FastApi
  • P1009 [NOIP 1998 普及组] 阶乘之和
  • HashMap中get()、put()详解
  • 代码审计-shiro漏洞分析
  • Explain关键字
  • rt thread studio 和 KEIL对于使用rt thread 的中间件和组件,哪个更方便
  • Flask3.1打造极简CMS系统
  • VsCode 接入Continue 远程调用(持续扩展 + DeepSeek R1)— 免本地算力
  • ZECN致业:科创微光,照亮技术新征程
  • 200nl2sql
  • Linux建立本地软件仓库