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()
输出
它将产生以下输出 −