Python之openpyxl生成折线图
Python处理excel的第三方库有:xlrd,xlwt,openpyxl等,xlrd只能读excel,xlwt只能写excel,openpyxl既可以读写数据,还能操作工作表,比如生成柱状图等,本文简要介绍如下:
一、openpyxl安装:
cmd窗口使用安装命令:pip install openpyxl
二、Excel基本组成:
1)工作簿(workbook):一个 Excel 文档;
2)工作表(sheet):一个工作簿可以包含多个表, 如:sheet1, sheet2等;
3)列(column): 列地址是从 A 开始的;
4)行(row): 行地址是从 1 开始的;
5)单元格(cell):指定行和列的格;
三、生成折线图:
1)新建Excel文档“BUG.xlsx",表中数据内容如下:
2)代码参考如下:
from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference
wb = load_workbook("BUG.xlsx")
sheet = wb.active
chart = LineChart()
#图的标题
chart.title = "缺陷数量月度统计"
#y轴标题
chart.y_axis.title = "开发人员(单位:个)"
#x轴标题
chart.x_axis.title = "月度"
#数据来源
data = Reference(worksheet=sheet, min_row=2, max_row=4, min_col=1, max_col=5)
#设定x轴项目名称,来自表格第一行的第2列至第5列
categories = Reference(sheet, min_col=2, min_row=1, max_col=5, max_row=1)
#折线图数据,y轴名称为第一行列名称
chart.add_data(data, from_rows=True, titles_from_data=True)
chart.set_categories(categories)
sheet.add_chart(chart, "G1")
wb.save("BUG.xlsx")
3)运行代码后查看折线图效果如下:
四、生成柱状图:
1)新建Excel文档“BUG.xlsx",表中数据内容如下:
2)代码参考如下:
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference
wb = load_workbook("BUG.xlsx")
sheet = wb.active
chart =BarChart()
#图的标题
chart.title = "缺陷数量月度统计"
#y轴标题
chart.y_axis.title = "开发人员(单位:个)"
#x轴标题
chart.x_axis.title = "月度"
#数据来源
data = Reference(worksheet=sheet, min_row=2, max_row=4, min_col=1, max_col=5)
#设定x轴项目名称,来自表格第一行的第2列至第5列
categories = Reference(sheet, min_col=2, min_row=1, max_col=5, max_row=1)
#折线图数据,y轴名称为第一行列名称
chart.add_data(data, from_rows=True, titles_from_data=True)
chart.set_categories(categories)
sheet.add_chart(chart, "G1")
wb.save("BUG.xlsx")
3)运行代码后查看折线图效果如下: