当前位置: 首页 > 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…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

C++ 基础特性深度解析

目录 引言 一、命名空间(namespace) C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用(reference)​ C 中的引用​ 与 C 语言的对比​ 四、inline(内联函数…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

Web后端基础(基础知识)

BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...

GAN模式奔溃的探讨论文综述(一)

简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...