Python对于Excel的一些基本绘制图标操作,让你日常工作更加轻松
off999 2024-10-02 18:43 34 浏览 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方面的操作肯定不止于此。未完待续.................
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
相关推荐
- uefi模式下找不到硬盘(uefi引导找不到硬盘)
-
首先你的安装盘必须是从UEFI启动的,然后它才能安装为UEFI启动。(条件:Fat32文件系统,efi文件夹)其次你MBR+BIOS的系统想换成GPT+EFI的,分区得做一点改动,腾出来100M的空...
- win7怎么安装蓝牙驱动程序(win7电脑安装蓝牙驱动教程)
-
方法如下: 1、再开始里点击控制版面,点击【硬件和声音】找到【添加设备】 2、之后再选择你要添加的蓝牙耳机。 3、系统就会提示正在与蓝牙适配器连接,然后提示添加成功。 4、点击“开始”-“...
- 怎么装系统win7旗舰版(电脑怎么装win7旗舰版)
-
1、目前支持64位的Wincc版本有:WinccV7Sp3、WinccV11Sp2、WinccV12。2、Wincc的V11与V12两个版本不能共存,即不能同时安装在同一台电脑上。上述这两...
- 怎样恢复桌面图标原样(怎样恢复桌面图标原样显示)
-
桌面图标恢复原样步骤方法如下:1.右键点击图标、并点击‘属性’两字,再点击‘打开文件位置‘2.然后找到文件所在的位置,然后暂时将文件在一旁放着3.然后再去点击‘更换图标’这四个字,找到刚刚打开的文件...
- 消除u盘写保护(怎么解除u盘写保护)
-
如果您的U盘启用了写保护功能,可以尝试以下几种方法来解除写保护:1.检查U盘上的物理写保护开关:部分U盘有一个物理的写保护开关,可以在U盘的外壳上找到。请确保开关处于非写保护状态。2.使用CMD命...
- microsoft国际版(微软国际版bing)
-
win10系统自带的edge浏览器不分国内版和国际版。搜索引擎Bing分为国内版和国际版,区别如下一、迎合不同人群的需求。国际版显得更加个性,他迎合了不同人群的需求,在收缩上更加方便化和智能化,后期可...
- 为什么格式化sd卡后不能用了
-
SD卡受损后不格式化直接修复的方法:1,当系统发现SD卡受损之后,会提示进行格式化。2,把SD卡插入读卡器,接到电脑USB后,电脑提示格式化,点取消。然后查看一下属性。直接使用属性中的工具-开始检查...
- c盘删除的东西能恢复吗(c盘删掉的东西还在吗)
-
1.重新安装。 如果是安装在c盘下的普通应用程序,重新下载安装即可; 2.备份恢复或重装系统。 如果是删除了系统文件,在系统备过份且知道删除...
- 电脑如何重装系统winxp(电脑如何重装xp系统教程)
-
重装XP系统的步骤如下:1.首先备份您的重要文件和数据。2.插入XP系统安装光盘,重新启动计算机。3.在启动时按下计算机制造商指定的键(通常是F2、F12、Esc等)进入BIOS设置或启动菜单。...
- win8密钥永久激活工具(win8密钥永久激活工具在哪)
-
win8.1正式版升级win10,自动激活,win8.1的密钥不能激活win10,升级win10正式版以后,无论怎么安装win10,系统都是自动激活状态。终极PID检测产品密钥:GCRJD...
- 制作系统安装u盘教程(制作系统安装盘及系统安装的步骤)
-
答u盘做系统详细步骤如下: 1.首先我们要准备一个10G内存的空白u盘,然后在装机吧官网下载一个装机吧一键重装系统软件,安装完成后打开软件,制作模式选择”USB-HDD“分区格式为”NTFS“点击...
-
- 联想win7怎么进入bios设置(联想win7进入bios设置win10)
-
联想电脑win7进入bios设置的具体步骤如下: 1、首先我们打开电脑的同时,按下键盘上的“F2”。2、然后我们在弹出来的窗口中就可以进入到BIOS界面中。3、然后我们按下键盘上的“F10”,之后回车确定即可退出。联想电脑win7...
-
2025-11-09 14:03 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- 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)
