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.