Python XlsxWriter - 迷你图

迷你图 是一个小图表,没有轴或坐标。 它给出了某个参数变化的表示。 普通图表尺寸较大,具有许多解释性特征,例如标题、图例、数据标签等,并与随附的文本相衬。 另一方面,迷你图的尺寸很小,可以嵌入文本或具有上下文的工作表单元格中。

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

迷你图有三种类型 −

  • line − 类似于折线图

  • column − 类似柱状图

  • win_loss − 每个值是正数(获胜)还是负数(失败)。


使用 XlsxWriter 迷你图

XlsxWriter 模块有 add_sparkline() 方法。 它基本上需要迷你图的单元格位置和要表示为迷你图的数据范围。 可选地,其他参数如type、style等以字典对象的形式提供。 默认情况下,类型为 line。

示例

以下程序表示行和列迷你图中相同的数字列表。

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()

输出

In cell K, the sparklines are added.

迷你图

The properties are −

  • range − 是必选参数。 它指定迷你图将绘制的单元格数据范围。

  • type − 指定迷你图的类型。 有 3 种可用的迷你图类型:线、列和 win_loss。

  • markers − 打开线条样式迷你图的标记

  • style − MS Excel 中定义的迷你图样式。 共有 36 种样式类型。

  • negative_points − 如果设置为 True,迷你图中的负点将突出显示。

示例

以下程序生成一个带有标记折线迷你图和一个突出显示负点的win_loss迷你图

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 中的迷你图突出显示负点。

折线迷你图

示例——样式类型

以下代码在迷你图列中显示一系列数字。 这里使用了十种不同的样式类型。

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