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")
在上面的代码中,我们首先导入了 BarChart
和 Reference
类,它们分别用于创建柱状图和指定数据范围。
然后,我们使用 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()
# 设置图表标题和数据范围