Python XlsxWriter 迷你图
A 迷你图 是一个小图表,没有轴或坐标。它给出了某个参数变化的表示。普通图表尺寸较大,具有许多说明性特征,如标题、图例、数据标签等,并从随附的文本中衬托出来。另一方面,迷你图尺寸较小,可以嵌入文本或具有其上下文的工作表单元格中。
Sparkline 的功能是由 Edward Tufte 在 1983 年引入的。Microsoft 在 Excel 2010 中引入了 Sparkline。我们可以在 Excel 软件的插入功能区中找到 sparkline 选项。
迷你图分为三种:
-
line : 类似于折线图
-
column : 类似于柱状图
-
win_loss :每个值是正(赢)还是负(输)。
使用 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 中,添加了迷你图。
属性为:
-
range :是必填参数。它指定迷你图将绘制的单元格数据范围。
-
type :指定迷你图的类型。有 3 种可用的迷你图类型是 line、column 和 win_loss。
-
markers : 打开线条样式迷你图的标记
-
style : MS Excel 中定义的迷你图样式。有 36 种样式类型。
-
负分 :如果设置为True,迷你图中的负点会被高亮。
例子
下面的程序产生一个 线迷你图 with markers and a 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 中的 Line Sparkline 有标记。 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()
它将产生以下输出: