基于python绘制数据表(上)
利用python绘制各种数据图表
绘制柱形图-源码
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference# 创建工作薄
wb = Workbook(write_only=True)
# 创建工作表
ws = wb.create_sheet('月收入')# 准备数据
rows = [('月份', '销售额'),(1, 23),(2, 43),(3, 56),(4, 23),(5, 65),(6, 54),(7, 43),(8, 25),(9, 53),(10, 76),(11, 54),(12, 54),
]# 将数据写入到工作表中
for row in rows:ws.append(row)# 创建柱形图对象
chart1 = BarChart()# 设置柱形图类型 type = col 表示垂直柱形图,type = bar 表示水平柱形图
chart1.type = "col"# 设置图表标题
chart1.title = "月销售额柱形图"# 设置图表轴标签
chart1.x_axis.title = '月份'
chart1.y_axis.title = '销售额'# 设置数据范围
data = Reference(ws, min_col=2, min_row=2, max_row=13, max_col=2)
categories = Reference(ws, min_col=1, min_row=2, max_row=13)# 将数据和类别添加到图表中
chart1.add_data(data, titles_from_data=True)
chart1.set_categories(categories)# 将图表添加到工作表中
ws.add_chart(chart1, "E5")# 保存工作薄
wb.save("示例文件\月份销售额.xlsx")
绘制柱形图-源码解析
这段代码使用 openpyxl
库来创建一个 Excel 工作簿,并在其中创建一个包含柱形图的工作表。以下是对代码的详细分析:
1. 导入必要的模块
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
-
Workbook
类用于创建一个新的工作簿。 -
BarChart
类用于创建柱形图。 -
Reference
类用于引用工作表中的数据范围。
2. 创建工作簿和工作表
wb = Workbook(write_only=True)
ws = wb.create_sheet('月收入')
-
Workbook(write_only=True)
创建一个只写模式的工作簿,适用于大数据量的写入操作。 -
create_sheet('月收入')
在工作簿中创建一个名为“月收入”的工作表。
3. 准备数据
rows = [('月份', '销售额'),(1, 23),(2, 43),(3, 56),(4, 23),(5, 65),(6, 54),(7, 43),(8, 25),(9, 53),(10, 76),(11, 54),(12, 54),
]
-
rows
是一个包含月份和销售额数据的列表。
4. 将数据写入工作表
for row in rows:ws.append(row)
-
使用
ws.append(row)
将每一行数据追加到工作表中。
5. 创建柱形图对象
chart1 = BarChart()
-
BarChart()
创建一个新的柱形图对象。
6. 设置柱形图类型
chart1.type = "col"
-
type = "col"
表示创建垂直柱形图。
7. 设置图表标题和轴标签
chart1.title = "月销售额柱形图"
chart1.x_axis.title = '月份'
chart1.y_axis.title = '销售额'
-
title
设置图表的标题。 -
x_axis.title
和y_axis.title
分别设置 X 轴和 Y 轴的标签。
8. 设置数据范围
data = Reference(ws, min_col=2, min_row=2, max_row=13, max_col=2)
categories = Reference(ws, min_col=1, min_row=2, max_row=13)
-
data
引用工作表中销售额的数据范围(从第2行第2列到第13行第2列)。 -
categories
引用工作表中月份的数据范围(从第2行第1列到第13行第1列)。
9. 将数据和类别添加到图表中
chart1.add_data(data, titles_from_data=True)
chart1.set_categories(categories)
-
add_data(data, titles_from_data=True)
将数据添加到图表中,并从数据中提取标题。 -
set_categories(categories)
设置图表的类别(即 X 轴的数据)。
10. 将图表添加到工作表中
ws.add_chart(chart1, "E5")
-
add_chart(chart1, "E5")
将图表添加到工作表的指定位置(E5 单元格)。
11. 保存工作簿
wb.save("示例文件\月份销售额.xlsx")
-
save("示例文件\月份销售额.xlsx")
将工作簿保存到指定的文件路径。
总结
这段代码通过 openpyxl
库创建了一个包含柱形图的 Excel 工作簿,并将数据写入工作表中。最后,图表被添加到工作表的指定位置,并保存为一个新的 Excel 文件。
绘制折线图-源码
from random import randint
from datetime import datetime
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference# 创建工作薄对象
wb = Workbook()
# 选定工作表
ws = wb.active # 使用 active 获取活动工作表# 准备数据
rows = [['时间', '服务人数']
]
for i in range(8, 24):# 将时间对象转换为字符串time_str = datetime.combine(datetime.today(), datetime.min.time()).replace(hour=i, minute=0).strftime('%H:%M')rows.append([time_str, randint(0, 200)])
for data in rows:ws.append(data)# 创建折线图对象
linechart = LineChart()
# 设置折线图属性
linechart.title = '当天客服绩效图'
linechart.x_axis.title = '时间'
linechart.y_axis.title = '服务人数'# 设置数据集范围
data = Reference(ws, min_row=2, min_col=2, max_row=ws.max_row)
# 添加数据
linechart.add_data(data, titles_from_data=True)# 设置x轴显示内容
linechart.x_axis.number_format = "HH:MM"
x_titles = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
linechart.set_categories(x_titles) # 修正了方法名# 设置图表的位置
ws.add_chart(linechart, 'A20')
# 保存位置
wb.save('示例文件/折线图.xlsx')
绘制折线图-源码解析
这段代码的目的是使用Python的openpyxl
库来创建一个Excel工作簿,并在其中添加一个折线图,该图表显示了从早上8点到晚上11点每小时的客服服务人数。以下是对代码的详细分析:
导入模块
from random import randint
from datetime import datetime
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference
-
randint
用于生成随机数,模拟服务人数。 -
datetime
用于生成时间数据。 -
Workbook
和LineChart
来自openpyxl
,分别用于创建Excel工作簿和折线图。 -
Reference
也来自openpyxl
,用于指定图表的数据范围。
创建工作簿和工作表
wb = Workbook()
ws = wb.active
-
Workbook()
创建一个新的工作簿。 -
wb.active
获取当前活动的工作表。
准备数据
rows = [['时间', '服务人数']]
for i in range(8, 24):time_str = datetime.combine(datetime.today(), datetime.min.time()).replace(hour=i, minute=0).strftime('%H:%M')rows.append([time_str, randint(0, 200)])
for data in rows:ws.append(data)
-
初始化一个包含表头的列表
rows
。 -
使用循环从早上8点到晚上11点生成时间字符串,并为每个小时生成一个0到200之间的随机服务人数。
-
将每行数据添加到工作表中。
创建折线图对象并设置属性
linechart = LineChart()
linechart.title = '当天客服绩效图'
linechart.x_axis.title = '时间'
linechart.y_axis.title = '服务人数'
-
创建一个折线图对象。
-
设置图表的标题和轴标题。
设置数据集范围并添加数据
data = Reference(ws, min_row=2, min_col=2, max_row=ws.max_row)
linechart.add_data(data, titles_from_data=True)
-
使用
Reference
指定服务人数的数据范围(从第二行第二列开始到数据结束)。 -
将数据添加到图表中,并设置
titles_from_data=True
以使用数据中的第一行作为图例。
设置x轴显示内容
linechart.x_axis.number_format = "HH:MM"
x_titles = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
linechart.set_categories(x_titles)
-
设置x轴的时间格式。
-
使用
Reference
指定时间数据范围,并通过set_categories
方法将其设置为x轴的类别。
设置图表位置并保存工作簿
ws.add_chart(linechart, 'A20')
wb.save('示例文件/折线图.xlsx')
-
将图表添加到工作表的指定位置(A20单元格)。
-
保存工作簿到文件。
注意事项
-
确保保存文件的路径('示例文件/折线图.xlsx')是正确的,并且Python脚本有权限写入该路径。
-
如果
openpyxl
库未安装,需要先通过pip install openpyxl
命令安装。
这段代码是一个很好的示例,展示了如何使用Python自动化Excel图表创建过程,适用于数据分析和报告生成。
绘制面积图-源码
from openpyxl import Workbook
from openpyxl.chart import AreaChart, Reference# 创建工作薄
wb = Workbook(write_only=True)
ws = wb.create_sheet('产品参数') # 手动创建一个工作表# 准备数据
rows = [['序号', '产品A', '产品B'],[1, 25, 57],[2, 30, 48],[3, 40, 45],[4, 50, 20],[5, 60, 50]
]# 将数据写入到工作表中
for row in rows:ws.append(row)# 创建面积对象
chart = AreaChart()
chart.title = "面积图"
chart.style = 14
chart.x_axis.title = '月份'
chart.y_axis.title = '利润(百万)'data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=7)
cats = Reference(ws, min_col=1, min_row=1, max_row=7)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)ws.add_chart(chart, "A10")
wb.save('示例文件/面积图.xlsx')
绘制面积图-源码解析
这段代码使用 openpyxl
库在 Python 中创建一个 Excel 文件,并在其中插入一个面积图。下面是代码的详细分析:
导入库
from openpyxl import Workbook
from openpyxl.chart import AreaChart, Reference
-
Workbook
类用于创建新的 Excel 工作簿。 -
AreaChart
类用于创建面积图。 -
Reference
类用于定义图表的数据范围。
创建工作簿和工作表
wb = Workbook(write_only=True)
ws = wb.create_sheet('产品参数')
-
Workbook(write_only=True)
:创建一个只能写入的工作簿,适合大数据量的写入操作。 -
create_sheet('产品参数')
:在工作簿中创建一个名为“产品参数”的工作表。
准备数据
rows = [['序号', '产品A', '产品B'],[1, 25, 57],[2, 30, 48],[3, 40, 45],[4, 50, 20],[5, 60, 50]
]
-
这里定义了一个二维数组
rows
,包含了产品的序号以及两个产品(产品A和产品B)在不同月份的利润数据。
将数据写入工作表
for row in rows:ws.append(row)
-
使用
append
方法将每一行数据添加到工作表中。
创建面积图对象并设置属性
chart = AreaChart()
chart.title = "面积图"
chart.style = 14
chart.x_axis.title = '月份'
chart.y_axis.title = '利润(百万)'
-
创建一个
AreaChart
对象。 -
设置图表的标题、样式、X轴和Y轴的标题。
定义图表的数据范围和类别
data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=7)
cats = Reference(ws, min_col=1, min_row=1, max_row=7)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
-
Reference
对象用于指定图表的数据范围和类别范围。 -
add_data
方法用于添加数据区域,并设置titles_from_data=True
以使用数据的第一行作为图例。 -
set_categories
方法用于设置 X 轴的类别。
将图表添加到工作表并保存工作簿
ws.add_chart(chart, "A10")
wb.save('示例文件/面积图.xlsx')
-
add_chart
方法将图表添加到工作表的指定位置(A10 单元格)。 -
save
方法用于保存工作簿到指定的文件路径。
总结
这段代码演示了如何使用 openpyxl
库在 Python 中创建一个包含面积图的 Excel 文件。它首先创建了一个工作簿和工作表,然后准备了数据并将其写入工作表。接着,它创建了一个面积图对象,设置了图表的属性和数据范围,并将图表添加到工作表中。最后,它保存了工作簿到一个文件。
相关文章:

基于python绘制数据表(上)
利用python绘制各种数据图表 绘制柱形图-源码 from openpyxl import Workbook from openpyxl.chart import BarChart, Reference# 创建工作薄 wb Workbook(write_onlyTrue) # 创建工作表 ws wb.create_sheet(月收入)# 准备数据 rows [(月份, 销售额),(1, 23),(2, 43),(3, …...

【机器学习】在向量的流光中,揽数理星河为衣,以线性代数为钥,轻启机器学习黎明的瑰丽诗章
文章目录 线性代数入门:机器学习零基础小白指南前言一、向量:数据的基本单元1.1 什么是向量?1.1.1 举个例子: 1.2 向量的表示与维度1.2.1 向量的维度1.2.2 向量的表示方法 1.3 向量的基本运算1.3.1 向量加法1.3.2 向量的数乘1.3.3…...
Python PPT合并与拆分 – 详解
目录 使用工具 Python 合并 PPT 合并多个PPT文档 合并每个PPT文档中的特定幻灯片 Python 拆分 PPT 按幻灯片数量拆分 按幻灯片范围拆分 按幻灯片内容拆分 按节 (Section) 拆分 在日常工作或学习中,我们经常需要对PPT文件进行调整,比如将多个PPT…...

舌头分割数据集labelme格式2557张1类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):2557 标注数量(json文件个数):2557 标注类别数:1 标注类别名称:["tongue"] 每个类别标注的框数࿱…...
LVS能否实现两台服务器的负载均衡
LVS能否实现两台服务器的负载均衡 是的,LVS(Linux Virtual Server)可以实现两台服务器的负载均衡,并且它非常适合这种场景。 LVS(Linux Virtual Server)简介: LVS 是一种基于 Linux 的负载均…...
onlyoffice 容器配置修改后制作镜像导出以及上传到 dockerhub
1.将容器制作成新的镜像 docker commit -p -a "xxx" -m "zh-cn-20-100" onlyoffice ooffice:7.1.1.23docker commit: 这是 Docker 中用于创建新镜像的命令。 -p: 这个选项用于在提交之前暂停容器的运行。这可以确保数据的完整性,因为容器在提交…...

Java常用 Date 时间格式化、Calender日历、正则表达式的用法
目录 1. SimpleDateFormat 日期格式化类 1.1 Date 类型转 String 1.2 String 类型转 Date 2. Calendar 日历类 3. 正则表达式 3.1 正则表达式的组成部分 3.2 手机号正则表达式 3.3 常用密码校验正则表达式 1. SimpleDateFormat 日期格式化类 SimpleDateFormat 是Java中…...
案例讲解自然语言处理(NLP)
自然语言处理(NLP)是一种涉及计算机与人类自然语言之间的交互的技术。以下是一些NLP技术的示例: 语言翻译:NLP可以用于将一种语言翻译成另一种语言。Google翻译就是一个使用NLP技术的例子,它可以将输入的文本从一种语言…...

tryhackme——Pre Security(安检前)-Offensive Security(进攻性安全)
这里我用的edge的插件闪击翻译。这里我英语不好,所以用这个可以顺便学习下英语。 任务一:What is Offensive Security?(什么是进攻性安全?) 很简单啊,通过阅读,知道以下哪个选项更能代表您模拟黑客操作…...
2.python变量
理解,我将提供更详细和深入的解释,包括一些进阶概念和实际应用的例子。我们将从变量类型开始,逐步深入到每种数据类型的特性、操作方法以及它们在编程中的应用场景。 文章目录 1. 变量赋值与作用域变量赋值变量作用域 2. 标准数据类型Number…...

【工业机器视觉】基于深度学习的水表盘读数识别(4-训练与预测)
【工业机器视觉】基于深度学习的仪表盘识读(读数识别)(3)-CSDN博客 训练与预测 Ultralytics YOLO指的是由Ultralytics公司开发的一系列基于YOLO(You Only Look Once)架构的目标检测算法。YOLO是一种实时目标检测系统,它…...
opencv获取摄像头的最大分辨率图像
事情是这样的,在拼多多花了40买了一个4k高清的摄像偷,确实清楚。但是我一直以为网络摄像头分辨率只有640*480,于是用python测试了一下,上代码 import cv2def get_max_resolution(camera_index):"""获取摄像头的最大分辨率。&…...

23.DDD与微服务
学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 DDD与微服务的关系1. DDD可以用微服务实现,也可以不用微服务实现2. DDD是微服务拆分的必须参考项之一3. 微服务架构…...

Redis是什么?Redis和MongoDB的区别在那里?
Redis介绍 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。以下是关于Redis的详细介绍: 一、数据结构支持 字符串(String) 这是Redis最…...
git SSL certificate problem: unable to get local issuer certificate
Git 客户端将会验证服务器端提供的SSL证书是否由受信任的证书颁发机构(Certification Authority,CA)签发。如果Git客户端无法找到或验证本地签发者证书,就会出现 unable to get local issuer certificate 或类似的错误。 该问题一…...

使用Keil V6编译 FreeRTOS CMSIS V2版本 ETH + Lwip 编译报错问题解决方式
网上其他人写的都解决不了,要不用的是CMSIS V1版本,根据他们的方式搞完还是报错,今天花点时间自己搞一下。 不想自己动手?没问题,模版已上传Gitee https://gitee.com/maybe_404/stm32-f4xx_-free-rtos_-lwip_-templa…...

驱动开发系列30 - Linux Graphics DRM光标绘制分析
一:概述 本文分析了 Linux 直接渲染管理器 (DRM) 绘制光标的过程,目的是将 OpenGL 与 DRM 连接,弄清楚整个调用逻辑。本文将详细描述这一过程,介绍如何在图形软件栈中实现光标渲染。整体软件栈的架构图也将展示其中的各个组成部分及其相互关系。 二:代码介绍 drm-cursor …...
如何利用Java爬虫获得淘宝买家秀
在电商平台上,买家秀数据是商家了解消费者反馈、优化产品和服务的重要资源。本文将详细介绍如何利用Java爬虫技术获取淘宝商品的买家秀信息,并提供一个完整的代码示例。 一、淘宝买家秀数据的重要性 买家秀数据包括买家上传的图片、视频、评论等内容&a…...

【ArcGIS】基于R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作
第一章、以问题导入的方式,深入掌握原理基础【理论篇】 1、R语言入门: (1)安装R及集成开发环境(IDE);(2)R语言基础语法与数据结构,包括:程序包安…...
虚幻引擎C++按键绑定
在项目的 Project Settings -> Engine -> Input 中进行配置。 配置输入映射的步骤: 打开 Project Settings: 在 Unreal Editor 中,点击菜单栏的 Edit -> Project Settings。 导航到 Input: 在 Project Settings 窗口的左侧导航栏中࿰…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...