📌  相关文章
📜  Python|使用 XlsxWriter 模块绘制带有模式填充列的 Excel 图表(1)

📅  最后修改于: 2023-12-03 14:46:26.143000             🧑  作者: Mango

Python 使用 XlsxWriter 模块绘制带有模式填充列的 Excel 图表

简介

XlsxWriter 是一个专门用于生成 Excel 文件的 Python 模块,能够方便地创建功能丰富的电子表格,并支持多种图表类型的制作。而在 XlsxWriter 中,可以通过 set_pattern() 方法为某一个单元格或范围设置背景填充的模式,其中包括网格、斜线、大斜线、点、水平线、垂直线、水平/垂直线以及交叉线等多种选择。

本文将介绍使用 XlsxWriter 模块创建 Excel 图表,并且展示如何为 Excel 图表的某列设置模式填充。

主要代码
import xlsxwriter

# 新建一个 Excel 文件,并新建一个名为“Sheet1”的工作表
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet('Sheet1')

# 设置第1列和第4列的背景填充样式
cell_pattern1 = workbook.add_format({'pattern': 1, 'bg_color': 'yellow'})
cell_pattern4 = workbook.add_format({'pattern': 2, 'bg_color': 'gray'})

# 在第1行第1列到第1行第4列,分别填充上述样式的单元格
worksheet.write('A1', 'Column 1', cell_pattern1)
worksheet.write('B1', 'Column 2')
worksheet.write('C1', 'Column 3')
worksheet.write('D1', 'Column 4', cell_pattern4)

# 设置图表数据
chart_data = [
    [30, 40, 60, 20],
    [30, 20, 80, 10],
    [50, 60, 70, 40],
    [70, 40, 30, 90]
]

# 初始化一个柱状图对象,并设置数据、标题及坐标轴标签
chart1 = workbook.add_chart({'type': 'column'})
chart1.add_series({'values': chart_data[0], 'name': 'Series 1'})
chart1.add_series({'values': chart_data[1], 'name': 'Series 2'})
chart1.add_series({'values': chart_data[2], 'name': 'Series 3'})
chart1.add_series({'values': chart_data[3], 'name': 'Series 4'})
chart1.set_title({'name': 'Column Chart Example'})
chart1.set_x_axis({'name': 'X Axis Label'})
chart1.set_y_axis({'name': 'Y Axis Label'})

# 将柱状图插入第2行第1列,并设置其大小
worksheet.insert_chart('A2', chart1, {'x_offset': 25, 'y_offset': 10})

# 关闭并保存 Excel 文件
workbook.close()
代码说明

首先,我们需要新建一个 Excel 文件,并在其中添加一个名为“Sheet1”的工作表(第 2~3 行)。接下来,我们需要使用 workbook.add_format() 方法为需要设置背景填充样式的列(在本例中为第 1 列和第 4 列)分别创建一个样式对象,并指定其填充模式和背景色属性。在本例中,我们选择了斜线模式和大斜线模式,并分别为它们设定了黄色和灰色的背景颜色。

设置好了样式后,我们需要在 Excel 工作表中指定具有这些样式的单元格。这里,我们使用 worksheet.write() 方法编写了 4 个单元格,分别位于第 1 行的第 1~4 列。需要注意的是,第 2 列和第 3 列并不需要设置任何特别的样式,因此只需要填写单元格内容即可。

接下来是关于图表制作的代码。我们首先需要设置一个图表数据区的矩阵,其中包含了 4 行 4 列的示例数据。接着,我们使用 workbook.add_chart() 方法创建了一个柱状图对象,使用 add_series() 方法为图表设置了 4 个系列的数据以及系列的名称,通过 set_title()set_x_axis()set_y_axis() 分别设置了图表标题、 X 轴标签和 Y 轴标签等属性。需要注意的是,我们在图表对象创建后通过 set_options() 自定义了图表的大小和位置等属性。

最后,我们将图表插入到 Excel 工作表中。这里,我们将图表作为一个对象使用,指定其位置为第 2 行第 1 列,并通过 {'x_offset': 25, 'y_offset': 10} 参数设置了其大小和位置。

最后,我们调用 workbook.close() 方法关闭并保存 Excel 文件。