Python对于Excel的一些基本绘制图标操作,让你日常工作更加轻松
off999 2024-10-02 18:43 39 浏览 0 评论
前言
在Python中,我们可以利用第三方库来方便地操作Excel文件。这里使用python-excel.org中提供的openpyxl库,用于读写Excel 2007及以上版本的Excel文件。可以让我们日常工作中对于Excel方面的处理更加的方便
安装
使用pip安装工具来安装openpyxl,安装需要打开系统命令行(win +R)输入CMD
pip install openpyxl
即可安装。
初识操作代码
下面的代码用于创建Excel工作簿并在工作表中写入数据:
运行代码实现效果:
垂直、水平和堆积条形图
注意,下列设置影响不同的图表类型:
通过设置type为col或bar在垂直和水平条形图之间切换
当使用堆积图时,overlap需要被设置成100
如果条形是水平的,那么x和y轴相反
下面的代码用于创建不同型式的条形图:
from openpyxl import Workbook
from openpyxl.chart import BarChart, Series, Reference
wb= Workbook(write_only=True)
ws= wb.create_sheet
rows= [
('Number','Batch 1', 'Batch2'),
(2, 10, 30),
(3, 40, 60),
(4, 50, 70),
(5, 20, 10),
(6, 10, 40),
(7, 50, 30),
]
for row in rows:
ws.append(row)
chart1= BarChart
chart1.type= "col"
chart1.style= 10
chart1.title= "Bar Chart"
chart1.y_axis.title= 'Test number'
chart1.x_axis.title= 'Sample length (mm)'
data= Reference(ws, min_col=2, min_row=1, max_row=7, max_col=3)
cats= Reference(ws, min_col=1, min_row=2, max_row=7)
chart1.add_data(data,titles_from_data=True)
chart1.set_categories(cats)
chart1.shape= 4
ws.add_chart(chart1,"A10")
from copy import deepcopy
chart2= deepcopy(chart1)
chart2.style= 11
chart2.type= "bar"
chart2.title= "Horizontal Bar Chart"
ws.add_chart(chart2,"G10")
chart3= deepcopy(chart1)
chart3.type= "col"
chart3.style= 12
chart3.grouping= "stacked"
chart3.overlap= 100
chart3.title= 'Stacked Chart'
ws.add_chart(chart3,"A27")
chart4= deepcopy(chart1)
chart4.type= "bar"
chart4.style= 13
chart4.grouping= "percentStacked"
chart4.overlap= 100
chart4.title= 'Percent Stacked Chart'
ws.add_chart(chart4,"G27")
wb.save("bar.xlsx")
运行效果:
三维条形图
也可以创建三维条形图,代码如下:
from openpyxl import Workbook
from openpyxl.chart import (
Reference,
Series,
BarChart3D,
)
wb= Workbook
ws= wb.active
rows= [
(None, 2013, 2014),
("Apples",5, 4),
("Oranges",6, 2),
("Pears",8, 3)
]
for row in rows:
ws.append(row)
data= Reference(ws, min_col=2, min_row=1, max_col=3, max_row=4)
titles= Reference(ws, min_col=1, min_row=2, max_row=4)
chart= BarChart3D
chart.title= "3D Bar Chart"
chart.add_data(data=data,titles_from_data=True)
chart.set_categories(titles)
ws.add_chart(chart,"A6")
wb.save("bard.xlsx")
效果图:
股价图
不同形式股价图的特定格式选项:
高-低-收盘形式股价图实际上是一个不带线条的折线图,其标记设置为XYZ,并将hiLoLines设置为True。
开盘-高-低-收盘形式股价图就像一个带有标记的高-低-收盘股价图,每个数据点设置为XYZ和upDownLines。
可以通过组合股价图和条形图来添加表示成交量的条形。
基本的代码如下:
from datetime import date
from openpyxl import Workbook
from openpyxl.chart import (
BarChart,
StockChart,
Reference,
Series,
)
from openpyxl.chart.axis import DateAxis,ChartLines
from openpyxl.chart.updown_bars import UpDownBars
wb= Workbook
ws= wb.active
rows= [
['日期','成交量','开盘','高','低','收盘'],
['2018-11-10',20000,26.20,27.20,23.49,25.45,],
['2018-11-11',10000,25.45,25.03,19.55,23.05,],
['2018-11-12',15000,23.05,24.46,20.03,22.42,],
['2018-11-13',2000,22.42,23.97,20.07,21.90,],
['2018-11-14',12000,21.9,23.65,19.50,21.51,],
]
for row in rows:
ws.append(row)
# 高-低-收盘
c1= StockChart
labels= Reference(ws, min_col=1, min_row=2, max_row=6)
data= Reference(ws, min_col=4, max_col=6, min_row=1, max_row=6)
c1.add_data(data,titles_from_data=True)
c1.set_categories(labels)
for s in c1.series:
s.graphicalProperties.line.noFill= True
# 标记收盘
s.marker.symbol= "dot"
s.marker.size= 5
c1.title= "高-低-收盘"
c1.hiLowLines= ChartLines
from openpyxl.chart.data_source import NumData, NumVal
pts= [NumVal(idx=i) for i in range(len(data)- 1)]
cache= NumData(pt=pts)
c1.series[-1].val.numRef.numCache=cache
ws.add_chart(c1, "A10")
# 开盘-高-低-收盘
c2= StockChart
data= Reference(ws, min_col=3, max_col=6, min_row=1, max_row=6)
c2.add_data(data,titles_from_data=True)
c2.set_categories(labels)
for s in c2.series:
s.graphicalProperties.line.noFill= True
c2.hiLowLines= ChartLines
c2.upDownBars= UpDownBars
c2.title= "开盘-高-低-收盘"
c2.series[-1].val.numRef.numCache= cache
ws.add_chart(c2,"G10")
# 创建条形图代表成交量
bar= BarChart
data= Reference(ws, min_col=2, min_row=1, max_row=6)
bar.add_data(data,titles_from_data=True)
bar.set_categories(labels)
from copy import deepcopy
# 成交量-高-低-收盘价
b1= deepcopy(bar)
c3= deepcopy(c1)
c3.y_axis.majorGridlines=None
c3.y_axis.title= "价格"
b1.y_axis.axId= 20
b1.z_axis= c3.y_axis
b1.y_axis.crosses= "max"
b1+= c3
c3.title= "高低收盘成交量"
ws.add_chart(b1,"A27")
# 成交量-开盘-高-低-收盘
b2= deepcopy(bar)
c4= deepcopy(c2)
c4.y_axis.majorGridlines= None
c4.y_axis.title= "价格"
b2.y_axis.axId= 20
b2.z_axis= c4.y_axis
b2.y_axis.crosses= "max"
b2+= c4
ws.add_chart(b2,"G27")
wb.save("stock.xlsx")
实现效果图:
气泡图
气泡图与散点图相似,但使用第三维来决定气泡的大小,可以包括多个系列。
下面的代码创建气泡图:
from openpyxl import Workbook
from openpyxl.chart import Series, Reference, BubbleChart
wb= Workbook
ws= wb.active
rows= [
("Numberof Products", "Sales in USD","Market share"),
(14, 12200, 15),
(20, 60000, 33),
(18, 24400, 10),
(22, 32000, 42),
(),
(12, 8200, 18),
(15, 50000, 30),
(19, 22400, 15),
(25, 25000, 50),
]
for row in rows:
ws.append(row)
chart= BubbleChart
chart.style= 18 #使用预设的样式
# 添加第一个数据系列
xvalues= Reference(ws, min_col=1, min_row=2, max_row=5)
yvalues= Reference(ws, min_col=2, min_row=2, max_row=5)
size= Reference(ws, min_col=3, min_row=2, max_row=5)
series= Series(values=yvalues, xvalues=xvalues, zvalues=size, title="2013")
chart.series.append(series)
# 添加第二个数据系列
xvalues= Reference(ws, min_col=1, min_row=7, max_row=10)
yvalues= Reference(ws, min_col=2, min_row=7, max_row=10)
size= Reference(ws, min_col=3, min_row=7, max_row=10)
series= Series(values=yvalues, xvalues=xvalues, zvalues=size, title="2014")
chart.series.append(series)
# 在以单元格A12开始的单元格中放置图表
ws.add_chart(chart,"A12")
wb.save("bubble.xlsx")
效果图:
以上就是Python关于Excel的一些基本操作,当然了,Python对于Excel方面的操作肯定不止于此。未完待续.................
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
相关推荐
- fast路由器6位初始密码(fast路由器的密码)
-
答:fast路由器初始密码是admin;新款的迅捷无线路由器,管理界面没有初始密码。查看迅捷无线路由器底部标签,标签上标注了admin,说明初始密码就是admin;如果没有,说明该路由器没有初始密码。...
- 硬盘恢复软件哪个好(硬盘 恢复软件)
-
迷你兔数据恢复工具:支持恢复硬盘丢失的数据Pc3000数据恢复软件是一款非常专业的硬盘修复工具,能够对电脑硬盘资料数据进行修复,通过使用这个软件可以解决硬盘数据丢失故障,是一个用户进行硬盘资料修复好帮...
- 十大品牌监控摄像头排名(十大品牌监控摄像头排名第一)
-
答:1、华为/HUAWEI9.92、小米/MI9.63、罗技/Logitech9.64、海康威视/HIKVISION9.25、乔安/Jooan9.26、普联/TP-LINK9.27、乐橙8.98、萤石...
- 360手机助手老旧版本大全(360手机助手 老版本)
-
在设置里面找到历史记录就可能查看360手机助手·换机神器是安卓系统的换机软件,因为苹果的换机软件是爱思。1、打开360手机卫士,登陆账号,点击账号。2、进入个人中心,点击账户安全,在密保工具中,点击解...
- 系统应用工程师(系统工程的应用)
-
信息软件系统工程师有前途,毕业以后可以从事软件开发,软件系统的维护,运营等等,和计算机有关的工作内容,因为计算机专业可以说是一个非常热门的专业,很多的大型企业公司基本上都是以计算机研发为主的,薪资福利...
- qq恢复系统常见问题(qq恢复系统常见问题及答案)
-
QQ好友恢复系统一直显示服务器频繁有可能是系统的问题,你的qq重新更新一下,或者你卸载了重新下载一下就有可能好了。您好,很高兴为您解答:您可以试试清空下IE内存,然后关掉不必要的程序,尽量在电脑运...
- win10自带的office不见了(win10自带的office在哪个文件夹)
-
win10系统的office在电脑硬盘office的安装目录里,具体打开安装目录的操作如下:1、首先我们右键点击word,打开方式,选择默认程序打开。2、在默认框打钩,点击【浏览】。3、打开你安装of...
- w10系统我的电脑在哪里(windows10 我的电脑在哪)
-
首先,打开Windows10系统,可以看到当前桌面上没有“我的电脑”。二、然后,在桌面上鼠标右键都加空白处,在右键菜单中选择“个性化”,点击打开。三、然后,在窗口中左侧选择“更改桌面图标”,点击打开。...
- 2500电脑组装最强配置(2500左右组装电脑主机配置清单)
-
两千五百元组装电脑,但配置只能是一般。台式机分为主机和显示器两个主体,按这个价格,显示器只能配置一般的,大约两百多元价格,其余都用来组装主机,主机包含机箱,电源,排风扇,电脑主板及内存,电脑处理器,声...
-
- 小米手机定时关机怎么设置(如何让小米手机定时关机)
-
1、从设置菜单中找到电池与性能选项。 2、选择电池版块,点击定时开关机。 3、将定时开机右边的按钮开...
-
2025-12-28 02:51 off999
- 磁盘删除的文件怎么恢复(磁盘误删怎么恢复)
-
可以恢复,因为删除文件时,其实只是把表头删除了,后面的数据并没有删除,直到下一次进行写磁盘操作需要占用节点所在位置时,才会把相应的数据覆盖掉。所以,就算你误删了文件之后又进行了其他写磁盘操作,只要没有...
-
- qq自动回复内容古风(qq自动回复古文)
-
1、抽剑相助,搭救无辜,却引来杀身之祸。那女子故作柔弱,假装爱慕,只为那本剑谱。2、只缘感君一回顾,使我思君朝与暮。3、相知相惜若可谓缘,不负韶华年。4、看那天地日月,恒静无言;青山长河,世代绵延;就像在我心中,你从未离去,也从未改变。5、...
-
2025-12-28 01:51 off999
- 惠普电脑bios设置u盘启动(惠普 bios u盘启动)
-
惠普电脑bios设置u盘启动:1、插上制作好的u启动启动盘的u盘并启动电脑,在进入开机画面的时候按“f2”进入bios界面;2、进入bios界面之后切换到“boot”,准备设置u盘启动;3、这里在键盘...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
