Python实现在Excel文件中写入图表

  • Post category:Python

以下是详细的Python实现在Excel文件中写入图表的完整实例教程。

准备工作

在开始之前,需要确保已经安装好 openpyxlmatplotlib 两个库。可以使用以下命令进行安装:

pip install openpyxl
pip install matplotlib

编写代码

首先导入需要的库:

import openpyxl
import matplotlib.pyplot as plt

然后打开 Excel 文件,创建工作簿对象,并进入要写入数据的工作表:

#打开Excel文件
wb = openpyxl.load_workbook('demo.xlsx')

#选择工作簿中的一个工作表
ws = wb.active

接着,写入单元格数据,这里我写入了一些示例数据:

ws['A1'] = 'Month'
ws['B1'] = 'Sales'
for row in range(2, 7):
    ws.cell(row=row, column=1, value='Month ' + str(row - 1))
    ws.cell(row=row, column=2, value=row * 10)

然后,通过 openpyxl.chart 模块创建图表对象:

#创建柱状图对象
chart = openpyxl.chart.BarChart()
chart.title = 'Sales by Month'
chart.x_axis.title = 'Month'
chart.y_axis.title = 'Sales'

接下来,将数据范围添加到图表对象中:

#指定数据范围
data = openpyxl.chart.Reference(ws, min_col=2, min_row=1, max_col=2, max_row=6)
chart.add_data(data)

最后,将图表对象添加到工作表对象中,并指定图表的位置和大小:

#将图表对象添加到工作表
ws.add_chart(chart, 'D1')
chart.width = 16
chart.height = 10

示例说明

以下是两个示例说明,分别演示如何绘制折线图和散点图。

绘制折线图

首先,我们需要创建折线图对象,并设置其标题和横纵轴标签:

#创建折线图对象
chart = openpyxl.chart.LineChart()
chart.title = 'Sales by Month'
chart.x_axis.title = 'Month'
chart.y_axis.title = 'Sales'

接着,将数据范围添加到图表对象中,这里我们使用的是直接引用单元格数据的方式:

#指定数据范围
xdata = openpyxl.chart.Reference(ws, min_col=1, min_row=2, max_row=6)
ydata = openpyxl.chart.Reference(ws, min_col=2, min_row=2, max_row=6)
chart.add_data(ydata, titles_from_data=True)
chart.set_categories(xdata)

最后,将图表对象添加到工作表对象中,并设置图表位置和大小:

#将图表对象添加到工作表
ws.add_chart(chart, 'D1')
chart.width = 16
chart.height = 10

绘制散点图

绘制散点图与绘制折线图类似,只需要将折线图对象改为散点图对象,然后添加数据范围即可:

#创建散点图对象
chart = openpyxl.chart.ScatterChart()
chart.title = 'Sales by Month'
chart.x_axis.title = 'Month'
chart.y_axis.title = 'Sales'

#添加数据范围
xdata = openpyxl.chart.Reference(ws, min_col=1, min_row=2, max_row=6)
ydata = openpyxl.chart.Reference(ws, min_col=2, min_row=2, max_row=6)
chart.add_data(ydata, titles_from_data=True)
chart.set_x_axis(xdata)

同样地,将图表对象添加到工作表对象中,并设置图表位置和大小:

#将图表对象添加到工作表
ws.add_chart(chart, 'D1')
chart.width = 16
chart.height = 10

以上就是Python实现在Excel文件中写入图表的完整实例教程,包含了示例应用,希望对你有所帮助!