Python - 使用 XlsxWriter 模块绘制带有渐变填充的 Excel 图表

pythonserver side programmingprogramming

XlsxWriter 是一个 Python 库,使用它可以在 Excel 文件上执行多种操作,如创建、写入、算术运算和绘制图形。

示例

# 导入 xlsxwriter 模块
import xlsxwriter
# Workbook() 接受一个非可选参数,即我们要创建的文件名。
workbook = xlsxwriter.Workbook('chart_gradient1.xlsx')
# 然后使用工作簿对象通过 #add_worksheet() 方法添加新工作表。
worksheet = workbook.add_worksheet()
# 使用 #add_format() 方法创建一个新的 Format 对象来格式化工作表中的单元格。
# 在这里我们创建粗体格式对象。
bold = workbook.add_format({'bold': 1})
# 添加图表将引用的工作表数据。
headings = ['Number', 'Batch 1', 'Batch 2']
data = [
    [2, 3, 4, 5, 6, 7],
    [10, 40, 50, 20, 10, 50],
    [30, 60, 70, 50, 40, 30],
]
# 从 'A1' 开始以粗体格式写入一行数据
worksheet.write_row('A1', headlines, bold)
# 分别从 'A2'、'B2'、'C2' 开始写入一列数据。
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
# 创建一个可以使用 #add_chart() 方法添加到工作表的图表对象。
# 这里我们创建一个柱形图对象
chart = workbook.add_chart({'type': 'column'})
#使用 add_series 方法向图表添加具有渐变的数据系列。
# 配置第一个系列。= Sheet1 !$A$1 相当于 #['Sheet1', 0, 0]。
# 注意:b/w = 和 Sheet1、Sheet1 和 ! 中未插入空格
# 如果插入空格,则会引发警告。
chart.add_series({
    'name':       '= Sheet1 !$B$1',
    'categories': '= Sheet1 !$A$2:$A$7',
    'values':     '= Sheet1 !$B$2:$B$7',
    'gradient':   {'colors': ['# 963735', '# F1DCDB']}
})
# 配置第二个系列,包括渐变。
chart.add_series({
    'name':       '= Sheet1 !$C$1',
    'categories': '= Sheet1 !$A$2:$A$7',
    'values':     '= Sheet1 !$C$2:$C$7',
    'gradient':   {'colors': ['# E36C0A', '# FCEADA']}
})
#添加图表标题
chart.set_title ({'name': '带有渐变填充的图表'})  
# 添加 x 轴标签
chart.set_x_axis({'name': '测试编号'})
# 添加 y 轴标签
chart.set_y_axis({'name': '样本长度 (mm)'})
# 关闭图表图例。
chart.set_legend({'none': True})  
# 将图表添加到工作表,并在图表左上角指定偏移值,并将其锚定到单元格 D2。
worksheet.insert_chart('D2', chart,
{'x_offset': 25, 'y_offset': 10})  
# 最后,通过 close() 方法关闭 Excel 文件。 
workbook.close()

相关文章