Python openpyxl --绘制Excel图表
使用 openpyxl
库的 chart
模块绘制图表,比如条形图、折线图
系列
条形图
需要用到 chart
模块的两个类:
BarChart : 绘制条形图
Reference : 引用表格中的数据
实现目标
绘制条形图
导入模块
1 | from openpyxl import load_workbook |
确定图表类型
1 | # 实例化BarChart |
BarChart
: 条形图LineChart
: 折线图
引用表格中的金额
Reference(worksheet, min_row, max_row, min_col, max_col)
worksheet
: 工作表对象min_row
: 起始行,默认第一行max_row
: 终止行min_col
: 起始列,默认第一列max_col
: 终止列
1 | # 引用活动表第一行至第五行 第二列(B列)区域的数据 |
如果行列太多不便读取时
1 | # 以整数返回最大非空行 |
将引用的金额添加到BarChart
BarChart对象.add_data(Reference,from_rows,titles_from_data)
Reference
: 引用的数据from_rows
: 来自行
为 True : 引用所选区域的 每行数据
为 False : 引用所选区域的 每列数据
titles_from_data
: 图例名称来自数据,一般设置为True
为 True : 需要多引用表格的数据来命名图例
为 False : 只需要引用绘制图表的数据,图例会自命名为系列1、系列2..
1 | # 将金额加到BarChart对象 |
图表位置
工作表对象.add_chart(BarChart对象,'单元格')
1 | # 条形图放置位置,从左上角E2开始 |
优化条形图
设置类别轴的标签
BarChart对象.set_categories(Reference对象)
1 | # 引用活动表第二行至第五行 第一列(A列)区域的数据 |
设置XY轴标题
BarChart对象.x_axis.title = '标题'
BarChart对象.y_axis.title = '标题'
1 | # 设置 x 轴的标题 |
设置条形图样式
BarChart对象.style = 整数
整数
取值范围为最小值1,最大值48
1 | # 设置条形图样式 |
保存工作簿
工作簿对象.save('保存路径')
只是修改文件名相当于 重命名
修改了文件路径相当于 另存为
不保存则上序操作无效
1 | # 在当前目录下保存工作簿 |