31-图表
13.11 图表
openpyxl
支持利用工作表中单元格的数据来创建条形图、折线图、散点图和饼图。要创建图表,需要做下列事情。
1.从一个矩形区域选择单元格来创建一个 Reference
对象。
2.通过传入 Reference
对象来创建一个 Series
对象。
3.创建一个 Chart
对象。
4.将 Series
对象添加到 Chart
对象。
5.可选地设置 Chart
对象的 drawing.top
、 drawing.left
、 drawing.width
和 drawing.height
属性。
6.将 Chart
对象添加到 Worksheet
对象。
Reference
对象需要一些解释。 Reference
对象是通过调用 openpyxl.charts
. Reference()
函数并传入以下3个参数创建的。
1.包含图表数据的 Worksheet
对象。
2.两个整数的元组,代表矩形选择区域的左上角单元格,该区域包含图表数据:元组中第一个整数是行,第二个整数是列。请注意第一行是1,不是0。
3.两个整数的元组,代表矩形选择区域的右下角单元格,该区域包含图表数据:元组中第一个整数是行,第二个整数是列。
图13-9所示为坐标参数的一些例子。
在交互式环境中输入以下代码,这可以创建一个条形图并将其添加到电子表格中:
>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> sheet = wb.active
>>> for i in range(1, 11): # create some data in column A
... sheet['A' + str(i)] = I
...
>>> refObj = openpyxl.chart.Reference(sheet, min_col=1, min_row=1,
max_col=1, max_row=10)
>>> seriesObj = openpyxl.chart.Series(refObj, title='First series')
>>> chartObj = openpyxl.chart.BarChart()
>>> chartObj.title = 'My Chart'
>>> chartObj.append(seriesObj)
>>> sheet.add_chart(chartObj, 'C5')
>>> wb.save('sampleChart.xlsx')
得到的电子表格如图13-10所示。
通过调用 openpyxl.charts.BarChart()
我们创建了一个条形图。也可以调用 openpyxl. charts.LineChart()
、 openpyxl.charts.ScatterChart()
和 openpyxl. charts. PieChart()
来创建折线图、散点图和饼图。