📌  相关文章
📜  Python|使用 XlsxWriter 模块在 Excel 工作表中绘制组合图表(1)

📅  最后修改于: 2023-12-03 15:19:18.123000             🧑  作者: Mango

Python|使用 XlsxWriter 模块在 Excel 工作表中绘制组合图表

介绍

XlsxWriter 是一个 Python 模块,用于在 Excel XLSX 文件中创建、写入和格式化工作簿和工作表。它支持许多 Excel 功能并且易于使用。

在本文中,我们将介绍如何使用 XlsxWriter 模块创建 Excel 工作表,并在其中绘制组合图表。

以下是本文中我们将要涵盖的主题:

  • 安装 XlsxWriter 模块;
  • 创建 Excel 工作表并向其中添加数据;
  • 绘制组合图表。
安装 XlsxWriter 模块

要安装 XlsxWriter 模块,可以使用 pip:

pip install XlsxWriter
创建 Excel 工作表并向其中添加数据

要创建 Excel 工作表并向其中添加数据,可以使用 XlsxWriter 模块提供的 API。我们先导入 XlsxWriter 模块:

import xlsxwriter

接着,我们可以使用 Workbook 方法创建一个新的 Excel 工作簿:

workbook = xlsxwriter.Workbook('chart.xlsx')

然后,我们可以在工作簿中创建一个新的工作表:

worksheet = workbook.add_worksheet()

接下来,我们可以通过 write 方法向工作表中添加数据:

# 添加表头
worksheet.write('A1', 'Month')
worksheet.write('B1', 'Sales')
worksheet.write('C1', 'Expenses')

# 添加数据
data = [
    ['January', 30000, 20000],
    ['February', 25000, 22000],
    ['March', 20000, 25000],
    ['April', 28000, 22000],
    ['May', 35000, 18000],
    ['June', 40000, 20000],
]

for row, (month, sales, expenses) in enumerate(data, 1):
    worksheet.write(row, 0, month)
    worksheet.write(row, 1, sales)
    worksheet.write(row, 2, expenses)

最后,我们必须调用 close 方法关闭工作簿:

workbook.close()
绘制组合图表

要在 Excel 工作表中绘制组合图表,我们需要使用 add_chart 方法创建一个新的图表对象。接着,我们可以使用 add_series 方法添加数据系列,并指定数据系列的类型、名称和数据区域。最后,我们使用 set_title 方法设置图表标题并使用 insert_chart 方法将图表插入工作表中。

以下是一个示例程序,该程序创建一个包含两个数据系列的组合图表:

import xlsxwriter

# 创建 Excel 工作簿和工作表
workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()

# 添加数据
data = [
    ['January', 30000, 20000],
    ['February', 25000, 22000],
    ['March', 20000, 25000],
    ['April', 28000, 22000],
    ['May', 35000, 18000],
    ['June', 40000, 20000],
]

# 添加表头
worksheet.write('A1', 'Month')
worksheet.write('B1', 'Sales')
worksheet.write('C1', 'Expenses')

# 添加数据
for row, (month, sales, expenses) in enumerate(data, 1):
    worksheet.write(row, 0, month)
    worksheet.write(row, 1, sales)
    worksheet.write(row, 2, expenses)

# 创建图表
chart = workbook.add_chart({'type': 'column'})

# 添加数据系列
chart.add_series({
    'name': '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$B$2:$B$7',
})
chart.add_series({
    'name': '=Sheet1!$C$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$C$2:$C$7',
    'y2_axis': 1,
})

# 设置标题
chart.set_title({'name': 'Sales and Expenses'})

# 插入图表
worksheet.insert_chart('E2', chart)

# 关闭工作簿
workbook.close()

以上程序会输出一个包含两个数据系列的组合图表,其中一个数据系列使用左侧 Y 轴,另一个数据系列使用右侧 Y 轴。

总结

在本文中,我们介绍了如何使用 XlsxWriter 模块在 Excel 工作表中绘制组合图表。我们先创建了一个新的 Excel 工作簿,并向其中添加数据。接着,我们使用 add_chart 方法创建了一个新的图表对象,并使用 add_series 方法添加了数据系列。最后,我们使用 insert_chart 方法将图表插入工作表中。