Python XlsxWriter - 火花图



火花图是一个小型图表,没有坐标轴或坐标。它表示某个参数的变化。普通图表尺寸较大,包含许多解释性特征,例如标题、图例、数据标签等,并且与伴随的文本分开。另一方面,火花图尺寸较小,可以嵌入文本或包含其上下文的工作表单元格中。

火花图的功能由 Edward Tufte 于 1983 年引入。Microsoft 在 Excel 2010 中引入了火花图。我们可以在 Excel 软件的插入功能区中找到火花图选项。

火花图有三种类型:

  • 线型 - 类似于折线图

  • 柱状 - 类似于柱状图

  • 盈亏 - 每个值是正数(盈利)还是负数(亏损)。

使用 XlsxWriter 火花图

XlsxWriter 模块具有add_sparkline() 方法。它主要需要火花图的单元格位置和要表示为火花图的数据范围。可选地,其他参数(例如类型、样式等)以字典对象的格式提供。默认情况下,类型为线型。

示例

下面的程序以线型和柱状火花图表示相同的数字列表。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

data=[12,23,9,17,31,3,7,21,10,15]

ws.write_row('A1', data)
ws.set_column('K:K', 40)
ws.set_row(0, 30)
ws.add_sparkline('K1', {'range':'Sheet1!A1:J1'})

ws.write_row('A5', data)
ws.set_column('K:K', 40)
ws.set_row(4, 30)
ws.add_sparkline('K5', {'range':'Sheet1!A5:J5', 'type':'column'})

wb.close()

输出

在 K 列单元格中添加了火花图。

Sparklines

属性如下:

  • range - 是必需参数。它指定火花图将绘制的单元格数据范围。

  • type - 指定火花图的类型。有 3 种可用的火花图类型:线型、柱状和盈亏。

  • markers - 为线型火花图打开标记。

  • style - 在 MS Excel 中定义的火花图样式。共有 36 种样式类型。

  • negative_points - 如果设置为 True,则突出显示火花图中的负点。

示例

下面的程序生成一个带有标记线型火花图和一个突出显示负点的盈亏火花图

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

data=[12,23,9,17,31,3,7,21,10,15]
ws.write_row('A1', data)
ws.set_column('K:K', 40)
ws.set_row(0, 30)

data=[1,1,-1,-1,-1,1,1,1,-1,-1]
ws.write_row('A5', data)
ws.set_column('K:K', 40)
ws.set_row(4, 30)
ws.add_sparkline('K1', {'range':'Sheet1!A1:J1', 'markers':True})
ws.add_sparkline('K5', {'range':'Sheet1!A5:J5', 'type':'win_loss',
'negative_points':True})

wb.close()

输出

K1 单元格中的线型火花图带有标记。K5 单元格中的火花图显示负点突出显示。

Line Sparkline

示例 - 样式类型

以下代码以柱状火花图显示一系列数字。这里使用了十种不同的样式类型。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

data=[12,23,9,17,31,3,7,21,10,15]
ws.write_row('C3', data)
ws.set_column('B:B',40)

for i in range(1,11):
   ws.write(i+4,0, 'style {}'.format(i))
   ws.add_sparkline(i+4,1,
   {'range':'Sheet1!$C$3:$L$3',
   'type':'column',
   'style':i})
   
wb.close()

输出

它将产生以下输出:

Column Sparkline
广告
© . All rights reserved.