使用Python在Word中生成多种不同类型的图表
目录
工具与环境配置
在 Word 中创建图表的步骤
在Word中创建柱形图
在Word中创建条形图
在Word中创建折线图
在Word中创建饼图
在Word中创建散点图
在Word中创建气泡图
在 Word 文档中插入图表不仅能更直观地呈现数据,还能提升文档的可读性和专业性。常见的图表类型包括柱形图、条形图、折线图、饼图、散点图和气泡图等,不同类型的图表适用于不同的数据展示需求。虽然 Word 提供了内置的图表创建工具,但使用 Python 进行自动化操作可以显著提高工作效率,尤其适用于动态数据处理或批量文档生成。
本文将介绍如何使用 Python 在 Word 文档中创建和自定义各种图表,涵盖以下类型:
- 柱形图
- 条形图
- 折线图
- 饼图
- 散点图
- 气泡图
工具与环境配置
要在 Python 中创建和自定义 Word 图表,可以使用 Spire.Doc for Python库。该库支持生成、处理和转换Word文档,支持多种Word图表类型。
安装Spire.Doc for Python
在开始之前,请运行以下命令安装 Spire.Doc for Python:
from spire.doc import *# 创建 Word 文档
document = Document()# 添加节并设置统一页边距(1 英寸)
section = document.AddSection()
section.PageSetup.Margins.All = float(72)# 添加段落并插入文本
title_paragraph = section.AddParagraph()
text = title_paragraph.AppendText("柱形图示例")
text.CharacterFormat.FontName = "等线"# 添加段落并插入柱形图
paragraph = section.AddParagraph()
shape = paragraph.AppendChart(ChartType.Column, float(400), float(200))# 获取图表并清除默认数据
chart = shape.Chart
chart.Series.Clear()# 定义 X 轴类别
categories = ["销售", "市场", "研发", "财务", "运营"]# 定义 Y 轴数据
series_1 = [float(1800000), float(900000), float(2000000), float(700000), float(1600000)]
series_2 = [float(1900000), float(800000), float(1850000), float(750000), float(1750000)]# 添加数据系列
chart.Series.Add("第一季度", categories, series_1)
chart.Series.Add("第二季度", categories, series_2)# 格式化 Y 轴标签
chart.AxisY.NumberFormat.FormatCode = "#,##0 元"# 设置图表标题
chart.Title.Text = "部门季度收入对比"# 保存 Word 文档
document.SaveToFile("柱形图示例.docx", FileFormat.Docx)
document.Close()

在Word中创建条形图
条形图与柱形图类似,但它使用水平条形表示数据,适用于类别名称较长或需要强调多个数据点对比的情况。
以下是在 Word 中使用 Python 创建条形图的实现代码:
from spire.doc import *# 创建 Word 文档
document = Document()# 添加节并设置统一页边距(1 英寸)
section = document.AddSection()
section.PageSetup.Margins.All = float(72)# 添加段落并插入文本
title_paragraph = section.AddParagraph()
text = title_paragraph.AppendText("条形图示例")
text.CharacterFormat.FontName = "等线"# 添加段落并插入条形图
paragraph = section.AddParagraph()
shape = paragraph.AppendChart(ChartType.Bar, float(400), float(250))# 获取图表并清除默认数据
chart = shape.Chart
chart.Series.Clear()# 定义 Y 轴类别(条形图)
categories = ["一月", "二月", "三月", "四月", "五月"]# 定义 X 轴数据
series_1 = [float(5000), float(7000), float(8500), float(6200), float(9800)]
series_2 = [float(4800), float(7200), float(8200), float(6100), float(9600)]# 添加数据系列
chart.Series.Add("产品 A", categories, series_1)
chart.Series.Add("产品 B", categories, series_2)# 设置图表标题
chart.Title.Text = "月度销售对比"# 保存 Word 文档
document.SaveToFile("条形图示例.docx", FileFormat.Docx)
document.Close()

在Word中创建折线图
折线图适用于显示趋势变化,常用于表现销售增长、温度变化等时间序列数据。
以下是在 Word 中使用 Python 创建折线图的实现代码:
from spire.doc import *# 创建 Word 文档
document = Document()# 添加节并设置统一页边距(1 英寸)
section = document.AddSection()
section.PageSetup.Margins.All = float(72)# 添加段落并插入文本
title_paragraph = section.AddParagraph()
text = title_paragraph.AppendText("折线图示例")
text.CharacterFormat.FontName = "等线"# 添加段落并插入折线图
paragraph = section.AddParagraph()
shape = paragraph.AppendChart(ChartType.Line, float(400), float(250))# 获取图表并清除默认数据
chart = shape.Chart
chart.Series.Clear()# 定义 X 轴类别(年份)
categories = ["2019", "2020", "2021", "2022", "2023"]# 定义 Y 轴数据
series_1 = [float(1200), float(2400), float(3100), float(3800), float(4500)]
series_2 = [float(1300), float(2200), float(2900), float(4000), float(4700)]# 添加数据系列
chart.Series.Add("品牌 A", categories, series_1)
chart.Series.Add("品牌 B", categories, series_2)# 格式化 Y 轴标签
chart.AxisY.NumberFormat.FormatCode = "#,##0 元"# 设置图表标题
chart.Title.Text = "年度收入增长趋势"# 保存 Word 文档
document.SaveToFile("折线图示例.docx", FileFormat.Docx)
document.Close()

在Word中创建饼图
饼图是一种圆形图表,它将数据表示为饼状的不同切片,使用户能够直观地了解各个部分在数据集中的比例。饼图常用于商业报告,例如市场份额分析、支出分布或调查结果展示。
以下是在 Word 中使用 Python 创建饼图的实现代码:
from spire.doc import *# 创建 Word 文档
document = Document()# 添加节并设置统一页边距(1 英寸)
section = document.AddSection()
section.PageSetup.Margins.All = float(72)# 添加段落并插入文本
title_paragraph = section.AddParagraph()
text = title_paragraph.AppendText("饼图示例")
text.CharacterFormat.FontName = "等线"# 添加段落并插入饼图
paragraph = section.AddParagraph()
shape = paragraph.AppendChart(ChartType.Pie, float(400), float(250))# 获取图表对象并清除默认数据
chart = shape.Chart
chart.Series.Clear()# 定义类别
categories = ["电子产品", "服装", "家居用品", "书籍", "玩具"]# 定义每个类别的对应值
values = [float(50000), float(30000), float(40000), float(20000), float(15000)]# 添加数据系列
chart.Series.Add("销售额分布", categories, values)# 设置图表标题
chart.Title.Text = "各品类销售额分布"# 保存 Word 文档
document.SaveToFile("饼图示例.docx", FileFormat.Docx)
document.Close()

在Word中创建散点图
散点图用于展示两个数值变量之间的关系。此类图表广泛用于科学研究和统计分析,以识别数据集中的趋势和模式。
以下是在 Word 中使用 Python 创建散点图的实现代码:
from spire.doc import *# 创建 Word 文档
document = Document()# 添加节并设置统一的页边距(1 英寸)
section = document.AddSection()
section.PageSetup.Margins.All = float(72)# 添加段落并插入文本
title_paragraph = section.AddParagraph()
text = title_paragraph.AppendText("散点图示例")
text.CharacterFormat.FontName = "等线"# 添加段落并插入散点图
paragraph = section.AddParagraph()
shape = paragraph.AppendChart(ChartType.Scatter, float(400), float(250))# 获取图表对象并清除默认数据
chart = shape.Chart
chart.Series.Clear()# 定义 X 轴类别(年份)
categories = ["2020", "2021", "2022", "2023", "2024"]# 定义 Y 轴数据
sales_product_a = [float(8000), float(12000), float(15000), float(17000), float(20000)]
sales_product_b = [float(7000), float(11000), float(13000), float(16000), float(18000)]# 添加两个数据系列
chart.Series.Add("产品 A 销量", categories, sales_product_a)
chart.Series.Add("产品 B 销量", categories, sales_product_b)# 设置图表标题
chart.Title.Text = "年度产品销售数据"# 保存 Word 文档
document.SaveToFile("散点图示例.docx", FileFormat.Docx)
document.Close()

在Word中创建气泡图
气泡图是散点图的一种扩展,数据点由大小不同的气泡表示。气泡图适用于展示三个数值变量之间的关系,常用于市场分析和数据可视化。
以下是在 Word 中使用 Python 创建气泡图的实现代码:
from spire.doc import *# 创建 Word 文档
document = Document()# 添加节并设置统一的页边距(1 英寸)
section = document.AddSection()
section.PageSetup.Margins.All = float(72)# 添加段落并插入文本
title_paragraph = section.AddParagraph()
text = title_paragraph.AppendText("气泡图示例")
text.CharacterFormat.FontName = "等线"# 添加段落并插入气泡图
paragraph = section.AddParagraph()
shape = paragraph.AppendChart(ChartType.Bubble, float(400), float(250))# 获取图表对象并清除默认数据
chart = shape.Chart
chart.Series.Clear()# 定义 X 轴数值
timelines = [float(2018), float(2019), float(2020), float(2021), float(2022)]# 定义 Y 轴数值
sales_growth = [1.2, 2.5, 3.8, 4.5, 5.3]# 定义气泡大小
bubble_sizes = [15.0, 25.0, 35.0, 45.0, 55.0]# 添加数据系列
chart.Series.Add("销售增长", timelines, sales_growth, bubble_sizes)# 设置图表标题
chart.Title.Text = "年度销售增长分析"# 保存 Word 文档
document.SaveToFile("气泡图示例.docx", FileFormat.Docx)
document.Close()

由于篇幅问题,本文只选择性介绍了部分Word图表类型。你还可以使用类似方法创建其他类型的图表,如面积图、雷达图和股票图等。所有图表的创建方式大致相同,只需修改 ChartType 参数,并根据图表类型调整数据结构。
以上就是使用Python在Word中生成和自定义多种不同类型的图表的全部内容。感谢阅读!
相关文章:
使用Python在Word中生成多种不同类型的图表
目录 工具与环境配置 在 Word 中创建图表的步骤 在Word中创建柱形图 在Word中创建条形图 在Word中创建折线图 在Word中创建饼图 在Word中创建散点图 在Word中创建气泡图 在 Word 文档中插入图表不仅能更直观地呈现数据,还能提升文档的可读性和专业性。常见的…...
pycharm + anaconda + yolo11(ultralytics) 的视频流实时检测,保存推流简单实现
目录 背景pycharm安装配置代码实现创建本地视频配置 和 推流配置视频帧的处理和检测框绘制主要流程遇到的一些问题 背景 首先这个基于完整安装配置了anaconda和yolo11的环境,如果需要配置开始的话,先看下专栏里另一个文章。 这次的目的是实现拉取视频流…...
Netty基础—5.Netty的使用简介
大纲 1.Netty服务端的启动流程 2.服务端IO事件的处理类 3.Netty客户端的启动流程 4.客户端IO事件的处理类 5.启动Netty服务端和客户端的方法说明 6.Netty服务端和客户端使用总结 7.什么是TCP粘包拆包 8.TCP粘包拆包的几种情况 9.TCP粘包拆包的原因 10.粘包问题的解决…...
C++初阶——类和对象(一)
C初阶——类和对象(一) 一、面向过程和面向对象 1.面向过程 面向过程的程序设计(Procedure-Oriented Programming),简称POP,是一种是以程序执行流程为核心的编程范式。它是先分析出解决问题所需要的的步…...
1141. 【贪心算法】排队打水
题目描述 有n(n<1000)个人在一个水龙头前排队接水,假如每个人接水的时间为Ti, 请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。输入 输入文件共两行,第一行为n; 第二行分别…...
RabbitMQ入门:从安装到高级消息模式
文章目录 一. RabbitMQ概述1.1 同步/异步1.1.1 同步调用1.1.2 异步调用 1.2 消息中间件1.2.1 概念1.2.2 作用1.2.3 常见的消息中间件1.2.4 其他中间件 1.3 RabbitMQ1.3.1 简介1.3.2 特点1.3.3 方式1.3.4 架构1.3.5 运行流程 二. 安装2.1 Docker 安装 RabbitMQ 三. 简单队列&…...
Linux应用:进程的回收
进程的诞生和消亡 程的诞生通常是通过系统调用(如fork、exec等)来创建新进程。当一个进程完成其任务或者出现错误时,它会进入消亡阶段。进程可以通过exit函数主动结束自身,也可能由于操作系统的调度策略(如资源耗尽、…...
如何利用 AI 技术快速定位和修复生产环境问题
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
Linux find 命令完全指南
find 是 Linux 系统最强大的文件搜索工具,支持 嵌套遍历、条件筛选、执行动作。以下通过场景分类解析核心用法,涵盖高效搜索、文件管理及高级技巧: 一、基础搜索模式 1. 按文件名搜索(精确/模糊匹配) <BASH> f…...
市场波动中的风险管理与策略优化
市场波动中的风险管理与策略优化 在市场交易中,价格的波动性为投资者提供了交易机会,但同时也带来了风险。如何在市场不确定性中进行有效的风险管理,并优化交易策略,是每位交易者都需要思考的问题。本文将探讨市场波动的影响因素、…...
(链表)206. 反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3: 输入&am…...
Jetson Orin NX jupyter lab的安装和使用
主要是为了梳理一下整个过程,其实步骤很简单,但容易出错。 注意,实际只有两个文件需要写入,一个是jupyter_lab_config.py,一个是jupyter.service。 配置文件的名字要写对,如果总是copy网上的代码࿰…...
前端npm包- CropperJS
文章目录 一、CropperJS**核心特性****官网与文档****安装与使用**1. **通过 npm/yarn/pnpm 安装**2. **HTML 结构**3. **引入 CSS 和 JS**4. **初始化裁剪器** **相关插件/替代方案****适用场景****注意事项** 总结 一、CropperJS cropperjs 是一个轻量级、功能强大的 图片裁…...
农业建设项目管理系统评测:8款推荐工具优缺点分析
本文主要介绍了以下8款农业建设项目管理系统:1.PingCode; 2. Worktile ;3. 建米农业工程项目管理系统;4. 开创云数字农业管理平台; 5. Trimble Ag Software;6.Conservis; 7. Agworld ࿱…...
linux 命令 tail
tail 是 Linux 中用于查看文件末尾内容的命令,常用于日志监控和大文件快速浏览。以下是其核心用法及常见选项: 基本语法 tail [选项] 文件名 常用选项 显示末尾行数 -n <行数> 或 --lines<行数> 指定显示文件的最后若干行(…...
测试开发 - 正浩创新 - 一面面经(已OC)
自我介绍 实习过程中,有遇到过什么问题,是如何解决的 实习成果中的数据指标变化,人力消耗一直在递减,是什么原因 实习工作有很多模块,那一块工作对你的提升或者收获是比较大的 讲一下,简历中所罗列的几…...
实验8 搜索技术
实验8 搜索技术 一、实验目的 (1)掌握搜索技术的相关理论,能根据实际情况选取合适的搜索方法; (2)进一步熟悉盲目搜索技术,掌握其在搜索过程中的优缺点; (3)…...
VSTO(C#)Excel开发9:处理格式和字体
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
LinkedList底层结构和源码分析(JDK1.8)
参考视频:韩顺平Java集合 特点 LinkedList 底层实现了 双向链表 和 双端队列 的特点。可以添加任意元素(元素可以重复),包括 null。线程不安全,没有实现同步。 LinkedList 底层结构 LinkedList 底层维护了一个双向链…...
数字内容体验的技术支柱是什么?
数据分析引擎构建基础 数字内容体验的技术底座始于对海量用户行为数据的深度解析。作为技术体系的根基,数据分析引擎通过实时采集、清洗与结构化处理,将分散的点击轨迹、停留时长及交互偏好转化为可操作的洞察。其核心能力体现在三方面:一是…...
C# 使用Markdown2Pdf把md文件转换为pdf文件
NuGet安装Markdown2Pdf库,可以把格式简单markdown文件转换为pdf。但该库用了Puppeteer Sharp,因此会在运行过程中提示指定Chrome浏览器路径或自动下载Chrome浏览器。 代码如下: using Markdown2Pdf;var converter new Markdown2PdfConverte…...
专家系统如何运用谓词逻辑进行更复杂的推理
前文,我们讲解了命题逻辑和谓词逻辑的基本概念、推理规则、应用以及一些简单的示例。具体内容可以先看我的文章:人工智能的数学基础之命题逻辑与谓词逻辑(含示例)-CSDN博客 那么形如专家系统这类复杂系统,是如何通过谓…...
html css网页制作成品——糖果屋网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Ubuntu上部署Flask+MySQL项目
一、服务器安装python环境 1、安装gcc(Ubuntu默认已安装) 2、安装python源码 wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz 3、安装Python依赖库 4、配置python豆瓣源 二、服务器安装虚拟环境 1、安装virtualenv pip3.10 ins…...
落雪音乐Pro 8.8.6 | 内置8条音源,无需手动导入,纯净无广告
洛雪音乐Pro版内置多组稳定音源接口,省去手动导入的繁琐操作,安装即可畅听海量音乐。延续原版无广告的纯净体验,支持歌单推荐与音源切换,满足个性化听歌需求。此版本仅支持在线播放,无法下载音乐,且与原版不…...
什么是全栈?
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点下班 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 📃文章前言 🔷文章均为学习工…...
一些docker命令
一、基础命令 查看 Docker 版本 docker --version 或 docker version:显示 Docker 客户端和服务器的版本信息。 查看 Docker 系统信息 docker info:显示 Docker 系统的详细信息,包括镜像、容器数量、存储驱动类型等。 Docker 服务管理 s…...
《DeepSeek 开源 DeepGEMM:开启AI计算新时代的密钥》:此文为AI自动生成
《DeepSeek 开源 DeepGEMM:开启AI计算新时代的密钥》:此文为AI自动生成 引言:AI 计算的新曙光 在当今科技飞速发展的时代,人工智能(AI)无疑是最为耀眼的领域之一。从语音助手到自动驾驶,从图像…...
OpenCV实现图像特征提取与匹配
一、特征检测与描述子提取 选择特征检测器 常用算法包括: ORB:一种高效的替代SIFT和SURF的算法,主要用于移动机器人和增强现实等领域。适合实时应用,结合FAST关键点与BRIEF描述子。SIFT(尺度不变特征变…...
将分支`XXX`合并到远程分支`master
将分支feat-task合并到远程分支master 首先,切换到本地的 master 分支 git checkout master确保你的本地 master 分支是最新的,拉取远程的更新 git pull origin master将 feat-task 分支的代码合并到 master 分支 git merge feat-task如果在合并过程…...
