Python 生产 Excel 图表

Excel 是一款功能强大的办公软件,广泛应用于数据分析、数据可视化和报告制作等领域。Python 是一种简单易学的编程语言,具有丰富的数据处理和图表绘制库。结合 Python 和 Excel,可以更高效地生成各种图表,并进行灵活的数据分析和可视化。

本文将介绍如何使用 Python 生成 Excel 图表,并提供相关的代码示例。

准备工作

在开始之前,我们需要安装 openpyxl 这个 Python 库。openpyxl 是一个功能强大的库,用于读写和操作 Excel 文件。你可以使用以下命令安装它:

pip install openpyxl

安装完成后,我们可以开始使用 Python 来生成 Excel 图表了。

创建 Excel 文件并添加数据

首先,我们需要创建一个新的 Excel 文件,并在其中添加一些数据。下面是一个示例代码:

import openpyxl

# 创建一个新的 Excel 文件
workbook = openpyxl.Workbook()

# 选择默认的工作表
sheet = workbook.active

# 添加数据
data = [
    ["日期", "销售额"],
    ["2021-01-01", 1000],
    ["2021-01-02", 1500],
    ["2021-01-03", 2000],
    ["2021-01-04", 1800],
    ["2021-01-05", 2500]
]

for row in data:
    sheet.append(row)

# 保存 Excel 文件
workbook.save("sales.xlsx")

在上面的代码中,我们首先导入了 openpyxl 库,然后使用 openpyxl.Workbook() 创建了一个新的 Excel 文件。默认情况下,会创建一个名为 Sheet 的工作表,我们可以通过 workbook.active 选择默认的工作表。

接下来,我们定义了一组数据,并使用 sheet.append(row) 将数据逐行添加到工作表中。

最后,我们使用 workbook.save("sales.xlsx") 将 Excel 文件保存到本地。你可以将文件名修改为你想要保存的路径和名称。

绘制柱状图

现在我们已经创建了一个包含数据的 Excel 文件,接下来我们将使用 Python 绘制柱状图来可视化这些数据。

下面是一个示例代码:

import openpyxl
from openpyxl.chart import BarChart, Reference

# 打开 Excel 文件
workbook = openpyxl.load_workbook("sales.xlsx")

# 选择默认的工作表
sheet = workbook.active

# 创建柱状图
chart = BarChart()

# 设置图表标题和数据范围
data = Reference(sheet, min_col=2, min_row=2, max_col=2, max_row=6)
categories = Reference(sheet, min_col=1, min_row=2, max_row=6)

chart.title = "销售额"
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)

# 将图表插入到工作表中
sheet.add_chart(chart, "E2")

# 保存 Excel 文件
workbook.save("sales.xlsx")

在上面的代码中,我们首先导入了 BarChartReference 类,它们分别用于创建柱状图和指定数据范围。

然后,我们使用 openpyxl.load_workbook("sales.xlsx") 打开之前创建的 Excel 文件。

接下来,我们创建一个 BarChart 对象,并使用 Reference 类指定了图表的标题和数据范围。在这个例子中,我们选择了第二列的数据作为图表的数据范围,并选择了第一列的数据作为图表的分类。

最后,我们使用 sheet.add_chart(chart, "E2") 将图表插入到工作表的 E2 单元格位置。

绘制折线图

除了柱状图,我们还可以使用 Python 绘制折线图来展示数据的趋势变化。下面是一个示例代码:

import openpyxl
from openpyxl.chart import LineChart, Reference

# 打开 Excel 文件
workbook = openpyxl.load_workbook("sales.xlsx")

# 选择默认的工作表
sheet = workbook.active

# 创建折线图
chart = LineChart()

# 设置图表标题和数据范围