使用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()

Python 在Word中创建柱形图

在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()

Python 在Word中创建条形图

在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()

Python 在Word中创建折线图

在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()

Python 在Word中创建饼图

在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()

Python 在Word中创建散点图

在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()

Python 在Word中创建气泡图

由于篇幅问题,本文只选择性介绍了部分Word图表类型。你还可以使用类似方法创建其他类型的图表,如面积图、雷达图和股票图等。所有图表的创建方式大致相同,只需修改 ChartType 参数,并根据图表类型调整数据结构。

以上就是使用Python在Word中生成和自定义多种不同类型的图表的全部内容。感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目-个人博客测试报告

目录 一、项目背景 二、项目功能 三、测试计划 (1)功能测试 (2)自动化测试 (3)性能测试 一、项目背景 1、个人博客系统是一个操作简单的基于Spring前后端分离的项目,同时使用MySQL数据库来进…

前端npm包- CropperJS

文章目录 一、CropperJS**核心特性****官网与文档****安装与使用**1. **通过 npm/yarn/pnpm 安装**2. **HTML 结构**3. **引入 CSS 和 JS**4. **初始化裁剪器** **相关插件/替代方案****适用场景****注意事项** 总结 一、CropperJS cropperjs 是一个轻量级、功能强大的 图片裁…

杨辉三角形(信息学奥赛一本通-2043)

【题目描述】 例5.11 打印杨辉三角形的前n(2≤n≤20)行。杨辉三角形如下图: 当n5时 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 输出: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 【输入】 输入行数n。 【输出】 输出如题述三角形。n行&#…

图论入门【数据结构基础】:什么是图?如何表示图?

图(Graph) 是一种非线性数据结构,用于表示对象之间的关系。图由 顶点(Vertex) 和 边(Edge) 组成,其中顶点表示对象,边表示对象之间的关系。图广泛应用于计算机科学、数学…

如何使用HACS一键集成米家与果家设备到HomeAssistant玩转智能家居

文章目录 前言1. 下载HACS源码2. 添加HACS商店3. 绑定米家设备 前言 各位科技潮人和智能家居发烧友们,是不是也梦想着把家里变成一个高科技的空间?有了群晖NAS这位得力助手,不仅存储空间大得吓人,还能通过Docker轻松安装各种应用…

《Java对象“比武场“:Comparable与Comparator的巅峰对决》

目录 引言: 一、认识接口 1.1 Comparable 1.2 Comparator ​编辑 1.3 核心概念对比 二、代码实现对比 2.1 Comparable 实现示例 2.2 Comparator 实例示例 三、核心区别详解 3.1 设计理念差异 3.2 方法调用 3.3 使用情景 四、本质区别总结 引言&#x…

Android自动化测试工具

细解自动化测试工具 Airtest-CSDN博客 以下是几种常见的Android应用自动化测试工具: Appium:支持多种编程语言,如Java、Python、Ruby、JavaScript等。可以用于Web应用程序和原生应用程序的自动化测试,并支持iOS和Android平台。E…

Go vs Rust vs C++ vs Python vs Java:谁主后端沉浮

一、核心性能对比(基于TechEmpower基准测试) 语言单核QPS延迟(ms)内存消耗适用场景Rust650,0000.1245MB高频交易/区块链C++720,0000.0932MB游戏服务器/实时渲染Go230,0000.45110MB微服务/API网关Java180,0001.2450MB企业ERP/银行系统Python12,0008.5220MBAI接口/快速原型技术…

vue3:八、登录界面实现-页面初始搭建、基础实现

一、初始工作 1、创建登录文件 在src/views中创建文件LoginView.vue文件 2、创建路由 在router/index.js中增加登录的信息 代码 import { createRouter, createWebHistory } from vue-router import HomeView from ../views/HomeView.vue const router createRouter({hist…

结构型模式之适配器模式:让不兼容的接口兼容

在软件开发中,经常会遇到这样一种情况:系统的不同部分需要进行交互,但由于接口不兼容,导致无法直接使用。这时,适配器模式(Adapter Pattern)就能派上用场。适配器模式是设计模式中的结构型模式&…

Qt从入门到入土(十) -数据库操作--SQLITE

认识 数据库是用于存储、管理和检索数据的系统化集合。它是一种按照特定结构组织数据的存储方式,通过软件(数据库管理系统,DBMS)来实现数据的高效存储、查询、更新和管理。通过文件存储数据适用于少量的数据,而当拥有…

Django REST Framework中的序列化器类和视图类

序列化器类 一、Serializer序列化类 Serializer是DRF的序列化器基类,提供基本功能,使用Serializer类需要自己定义字段名称和类型。 BookSerializer(Serializer):name serializers.CharField()price serlializers.IntegerField()date serlializers.…

图像分类数据集

《动手学深度学习》-3.5-学习笔记 # 通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式, # 并除以255使得所有像素的数值均在0~1之间 trans transforms.ToTensor()#用于将图像数据从 PIL 图像格式(Python Imaging Library&#xff…

架构师面试(十五):熔断设计

问题 某电商平台经常需要在大促运营活动中暂停评论、退款等业务,基于服务治理的设计理念,我们需要对该电商平台微服务系统的【服务熔断】进行设计,对此下面描述中说法正确的有哪几项呢? A. 服务管控系统管理着平台中所有服务之间…

Ubuntu20.04安装运行DynaSLAM

目录 一、安装Anaconda 二、相关依赖库安装 1、boost安装 2、Eigen 3安装 3、opencv安装 4、Pangolin安装 三、配置Mask_RCNN环境 四、DynaSLAM编译 五、DynaSLAM运行 一、安装Anaconda 打开以下链接: Index of / 下载和自己系统匹配的安装包。这里下…

X86 RouterOS 7.18 设置笔记三:防火墙设置(IPV4)

X86 j4125 4网口小主机折腾笔记五:PVE安装ROS RouterOS X86 RouterOS 7.18 设置笔记一:基础设置 X86 RouterOS 7.18 设置笔记二:网络基础设置(IPV4) X86 RouterOS 7.18 设置笔记三:防火墙设置(IPV4) X86 RouterOS 7.18 设置笔记四…

从 YOLOv1 到 YOLOv2:目标检测的进化之路

引言 你有没有想过,当你用手机拍一张照片,里面的人、车、狗是怎么被自动识别出来的?这背后靠的就是目标检测技术。目标检测是计算机视觉中的一个重要领域,它不仅要回答“图片里有什么”,还要告诉你“这些东西在哪里”…

数据的存储---整型、浮点型

目录 一、整型在内存中的存储 1. 原码、反码、补码 2. 大端与小端 二、浮点数在内存中的存储 1.浮点数的存 2. 浮点数的取 3. 题目解析 一个变量的创建需要在内存中开辟空间,而开辟的空间大小是由数据类型决定的。下面我们就来讨论一下整型、浮点型在内存中的…

Java 大视界 -- Java 大数据在智能教育虚拟实验室建设与实验数据分析中的应用(132)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

⚡️Jolt -- 通过JSON配置来处理复杂数据转换的工具

简介:一个能够通过JSON配置(特定的语法)来处理复杂数据转换的工具。 比如将API响应转换为内部系统所需的格式,或者处理来自不同来源的数据结构差异。例如,将嵌套的JSON结构扁平化,或者重命名字段&#xff0…