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

基于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.titley_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 用于生成时间数据。

  • WorkbookLineChart 来自 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"] 每个类别标注的框数&#xff1…...

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 窗口的左侧导航栏中&#xff0…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...