Python Xlsxwriter 简明教程
Python XlsxWriter - Sparklines
sparkline 是一种小型图表,没有坐标轴或坐标。它提供某个参数变化的表示形式。普通图表尺寸更大,具有许多说明性特征,例如标题、图例、数据标签等,并且与附带文本分开。另一方面,迷你图尺寸很小,可以嵌入文本中,也可以嵌入具有其上下文的文本或工作表单元格中。
Edward Tufte 于 1983 年引入了火花图功能。Microsoft 于 2010 年在 Excel 中引入了火花图。我们可以在 Excel 软件的插入功能区中找到火花图选项。
火花图有三种类型 -
-
line - 类似折线图
-
column - 类似柱状图
-
win_loss - 是否每个值都是正值(赢)或负值(输)。
Working with XlsxWriter Sparklines
XlsxWriter 模块有 add_sparkline() 方法。它基本上需要火花图的单元格位置和要表示为火花图的数据范围。此外,还可以以字典对象的形式提供其他参数,例如类型、样式等。默认情况下,类型为折线。
Example
以下程序表示在折线和柱状火花图中相同的数字列表。
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()
Output
火花图被添加到单元格 K 中。
属性为 -
-
range - 是必需的参数。它指定火花图将绘制的单元格数据范围。
-
type - 指定火花图的类型。有 3 种可用的火花图类型:折线、柱状和盈亏。
-
markers - 为折线样式火花图开启标记
-
style - 在 MS Excel 中定义的火花图样式。有 36 种样式类型。
-
negative_points - 如果设置为 True,则突出显示火花图中的负值点。
Example
以下程序生成一个有 markers 的 line sparkline 和一个突出显示负值点的 win_loss 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)
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()
Example – Style Types
以下代码显示了柱状火花图中的一系列数字。这里使用了十种不同的样式类型。
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()