python openpyxl.chart库绘制excel图表的使用

您所在的位置:网站首页 excel修改x轴名称 python openpyxl.chart库绘制excel图表的使用

python openpyxl.chart库绘制excel图表的使用

2024-07-16 08:33:38| 来源: 网络整理| 查看: 265

写在前面:

目前项目需要用python调excel在excel里画直方图,需要画图、设置数据标签之类的,很多参数打开csdn和百度搜索都说的不清不楚,直接放一大堆代码没有任何解释,官方文档全英文没解释,摸清每个参数用法后在此记录,望给下个需要的人提供方便,感谢阅览。

简介:openpyxl是一个python库,用于读写Excel文件。openpyxl.chart是openpyxl中的一个模块,用于在Excel工作簿中创建和操作图表。

要使用该库,首先要安装,安装openpyxl命令如下:

pip install openpyxl

1.openpyxl重要类 1.1 Reference

Reference用于创建一个引用对象,该对象指向excel表格中特定区域的数据

Reference(worksheet, min_col=2, min_row=1, max_row=7)

worksheet(必需):一个worksheet对象。表示要引用数据的工作表min_col(必需):一个整数,表示引用区域的起始列号(索引从1开始)min_row(必需):一个整数,表示引用区域的起始行号(索引从1开始)max_col (可选): 一个整数,表示引用区域的结束列号。如果未提供,则引用区域将扩展到该行的最后一列。max_row (可选): 一个整数,表示引用区域的结束行号。如果未提供,则引用区域将扩展到该列的最后一行。

这些参数规定了一个区域是从 (min_row, min_col) 开始,到 (max_row, max_col) 结束(包括这两个单元格)。

示例:

openpyxl.xlsx内的数据

import openpyxl # 导入Reference from openpyxl.chart import Reference # 存放表格的路径 excel_path = 'D:\\GC\\openpyxl.xlsx' # 使用 openpyxl.load_workbook 加载一个excel工作簿 这个excel是有数据的 workbook = openpyxl.load_workbook(excel_path) # workbook.active 代表当前工作簿活动的工作表 获取到当前活动的工作表 worksheet = workbook.active # 调用Reference获取这张工作表指定区域的数据 传入的参数分别为工作表、开始列、开始行、结束列、结束行 area = Reference(worksheet,min_col=1,min_row=1,max_col=2,max_row=10) # 我们打印一下这个area 看看里面是什么数据 print(area) # 结果为: 'Sheet1'!$A$1:$B$10 这个结果代表sheet1工作表的A1到B10的数据

使用Reference可以获得excel指定sheet页指定区域的内容,后续可以使用获得的内容进行绘制图表

1.2 Series

series对象代表图表中的一个数据系列,每个series对象通常包含一系列的值以及与之关联的类别标签,这些数据可以用于在图表中绘制多系列数据点。

series = Series(values=values, xvalues=xvalues, title='Batch 2')

values:一个Reference对象或包含单元格值的列表,代表图表中数据系列的数值xvalues: 一个 Reference 对象或是一个包含类别标签的列表,表示数据系列的类别。如果不提供,则使用默认的类别标签。title:数据系列的名称title_from_data:一个布尔值,如果为 True,则从数据源自动获取标题。

示例:

openpyxl.xlsx内的数据

import openpyxl # 导入Reference ScatterChart和 Series from openpyxl.chart import Reference,ScatterChart,Series excel_path = 'D:\\GC\\openpyxl.xlsx' # 使用 openpyxl.load_workbook 加载一个excel工作簿 这个excel是有数据的 workbook = openpyxl.load_workbook(excel_path) # workbook.active 代表当前工作簿活动的工作表 获取到当前活动的工作表 worksheet = workbook.active # 调用Reference获取这张工作表指定区域的数据 传入的参数分别为工作表、开始列、开始行、结束列、结束行 id = Reference(worksheet,min_col=1,min_row=2,max_col=1,max_row=20) # 学号 area_chinese = Reference(worksheet,min_col=2,min_row=2,max_col=2,max_row=20) # 语文成绩 area_math = Reference(worksheet,min_col=3,min_row=2,max_col=3,max_row=20) # 数学成绩 # 使用series 设置了两个系列的数据 都是以学号为类别标签 chinese = Series(values=area_chinese, xvalues=id, title='语文') chinese.graphicalProperties.line.noFill = True #关闭系列chinese数据点之间的连接线 默认散点图有连接线 chinese.marker.symbol = "circle" #设置数据点样式 圆圈 chinese.marker.graphicalProperties.solidFill = "FF0000" # 点的内部填充颜色 chinese.marker.graphicalProperties.line.solidFill = "FF0000" #点的外边框颜色 math = Series(values=area_math, xvalues=id, title='数学') math.graphicalProperties.line.noFill = True #关闭系列chinese数据点之间的连接线 默认散点图有连接线 math.marker.symbol = "circle" #设置数据点样式 圆圈 math.marker.graphicalProperties.solidFill = "A00800" # 点的内部填充颜色 math.marker.graphicalProperties.line.solidFill = "A00800" #点的外边框颜色 # 创建一个图表(散点图),并将两个系列的数据都添加到图表中 chart = ScatterChart() # 设置类别标签(即x轴的数据) chart.append(chinese) chart.append(math) #将图表添加到工作表 worksheet.add_chart(chart,'E2') #保存工作簿 workbook.save(excel_path)

结果如图所示:

1.3 绘制图表

openpyxl可以在exel绘制图表,包括但不限于,柱状图、折线图、散点图、饼图等,以下是可以绘制的图表类别:

面积图(AreaChart):包括二维面积图和三维面积图。条形图/柱形图(BarChart):包括垂直、水平和堆叠条形图,以及三维条形图。条形图也常被用来表示成交量图。气泡图(BubbleChart):用于显示三个变量之间的关系,其中两个变量确定数据点在图表中的位置,第三个变量通过气泡的大小表示。折线图(LineChart):包括标准的折线图和三维折线图,用于显示数据随时间或其他连续变量的变化趋势。散点图(ScatterChart):用于显示两个变量之间的关系,其中每个数据点表示一个观察值。饼图(PieChart):包括基本的饼图、三维饼图、投影饼图和渐变饼图。饼图用于显示数据的相对大小或比例。甜甜圈图(Donut Chart):类似于饼图,但中间有一个空心区域,可以用来表示数据的不同层级或类别。雷达图(Radar Chart):也称为蜘蛛网图,用于显示多个变量的数据,并比较不同数据系列之间的相对大小。股票图(Stock Chart):用于显示股票或其他金融数据的变化趋势。曲面图(Surface Chart):用于显示三维数据,通过颜色或高度来表示数据的值。

以barchart为例:

dLbls必须是label.DataLabelList类型数据

import openpyxl # 导入Reference ScatterChart from openpyxl.chart import Reference,BarChart,label excel_path = 'D:\\GC\\openpyxl.xlsx' # 使用 openpyxl.load_workbook 加载一个excel工作簿 这个excel是有数据的 workbook = openpyxl.load_workbook(excel_path) # workbook.active 代表当前工作簿活动的工作表 获取到当前活动的工作表 worksheet = workbook.active # 调用Reference获取这张工作表指定区域的数据 传入的参数分别为工作表、开始列、开始行、结束列、结束行 id = Reference(worksheet,min_col=1,min_row=2,max_col=1,max_row=20) # 学号 area_chinese = Reference(worksheet,min_col=2,min_row=2,max_col=2,max_row=20) # 语文成绩 area_math = Reference(worksheet,min_col=3,min_row=2,max_col=3,max_row=20) # 数学成绩 # 创建一个图表(柱状图图) chart = BarChart() # 设置柱状图是水平还是垂直 默认是垂直 这里设置为水平 chart.type = 'bar' #水平 # chart.type = 'col' 垂直 # style 更改样式 数字代表内置额样式编号 chart.style = 8 # title 设置标题 chart.title = '成绩图' # 坐标轴名称 chart.x_axis.title = "学号" chart.y_axis.title = "分数" #设置宽高 chart.width = 15 chart.height = 7 # add_data(data, titles_from_data=False): 向图表中添加数据 chart.add_data(area_chinese) # set_categories(labels): 设置图表的分类标签,也就是x轴上显示的数据 # 也可以不设置 不设置时 为默认的1,2,3...... 这里以学号为x轴数据 chart.set_categories(id) #设置显示数据标签 dLbls必须是label.DataLabelList类型数据 chart.dLbls = label.DataLabelList() chart.dLbls.showVal = True #显示数据标签 #将图表添加到工作表 worksheet.add_chart(chart,'E2') #保存工作簿 workbook.save(excel_path)

结果如图:

结尾:

以上就是我在项目中使用到的,了解这些以后就能够完成大部分功能,欢迎补充,欢迎指正。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭