大家好!今天要跟大家分享 SPARKLINE 的最後一種圖表,勝負分析走勢圖。我們可以把這種圖當成直條圖的另外一種型態,設定起來也和上週介紹過的很接近喔。這是之前分享過的 SPARKLINE 教學文:
另外,如果你在手機上看到這篇文章、覺得有興趣,你可以用方格子的收藏功能、把文章它存起來,練習的時候在電腦打開來看看。
勝負分析走勢圖是什麼
我們可以把勝負分析走勢圖看成一種直條圖,而數值只會有正值、負值還有 0 這三種。舉例來說:
正值的 3、10、5、1 跟 30 對應的長條是向上的、負值的 -2、-1、-7 則是向下的,而 0 則是空的長條。
怎麼用呢?這是我想到的一個例子:
這邊有四個商家,分別列出第一季到第四季的盈虧狀況。如果你的資料不需要看到詳細的長條、只需要快速看看正負兩種值的變化,這種圖表或許很適合。
或另一個例子,看看兩個球隊的對戰輸贏狀況:
也是可以用勝負分析走勢圖看個球隊隨著時間推移、勝場與敗場的趨勢(綠色代表勝場、黑色代表敗場)。
在 SPARKLINE 上設定這種圖的方法,其實和上一篇介紹的長條圖很像,只要你熟悉長條圖在 SPARKLINE 的設定,那麼勝負分析走勢圖應該不會太難才對的!
好,開始做做看吧!歡迎你打開這邊的
試算表,複製一份,一起跟著做。
勝負分析走勢圖屬性與參數設定
馬上來看看可以在勝負分析走勢圖設定的屬性:
再來看看練習題的第一題:
要用 SPARKLINE 製作勝負分析圖的話,charttype 要指定成 winloss。像是這樣:
=SPARKLINE(B4:J4, {"charttype", "winloss"})
這邊觀察一下我們剛剛畫出來的東西:
- 勝負分析走勢圖的預設顏色是黑的
- 正值長條向上、負值長條向下,零則是沒有長條。
如果你想要指定整張圖表的顏色,更改儲存格文字的顏色就可以了:
highcolor、lowcolor:最大值和最小值的直條顏色
我們可以用 highcolor、lowcolor 這兩個屬性指定最大值跟最小值的直條顏色。顏色的選擇就和之前的圖表設定一樣,可以輸入 HEX 色碼或是指定的英文名稱。你可以到文章的最後面,找到「圖表顏色彙整」,在那邊我整理好了顏色的指定方式給你囉!
假設我們把 highcolor 設定成藍色、lowcolor 為紅色的話:
=SPARKLINE(L4:T4, {"charttype", "winloss";
"highcolor", "blue"; "lowcolor", "red"})
-7 的直條變紅、30 的直條則變藍了。
如果你想做的是讓 highcolor 統一顯示一個顏色、lowcolor 也是的話,建議一開始就先把資料整理好,像是把全部的資料分成 +1、0、-1 三種,這樣顏色就會一致了。
我把資料整理好之後,再畫了一張圖:
=SPARKLINE(L8:T8, {"charttype", "winloss";
"highcolor", "blue"; "lowcolor", "red"})
firstcolor、lastcolor:第一條直條顏色、最後一條直條顏色
接下來看看怎麼設定第一條直條、最後一條直條顏色。
我們可以用 firstcolor 跟 lastcolor 分別設定第一條和最後一條的直條顏色,跟剛剛的 highcolor 跟 lowcolor 類似。像是這樣:
=SPARKLINE(L12:T12, {"charttype", "winloss";
"firstcolor", "green"; "lastcolor", "orange"})
axis、axiscolor:是否繪製橫軸、設定橫軸顏色
如果要畫出中間的橫軸,我們在 axis 這個屬性,設定 true 的參數:
=SPARKLINE(L12:T12, {"charttype", "winloss";
"axis", true})
這麼一來就會出現一條中間的橫軸,讓勝負分析走勢圖更好懂。
你當然也可以用 axiscolor 指定這個橫軸的顏色,而指定方式就和之前一樣,寫下 HEX 跟特定的英文詞就可以了。我在這邊指定了淺綠色(lightgreen)的這個屬性:
=SPARKLINE(L12:T12, {"charttype", "winloss";
"axis", true; "axiscolor", "lightgreen"})
最後最後,跟 SPARKLINE 的其他圖表一樣,我們也可以用 empty 跟 nan 這兩個屬性,指定資料有空白、還有非數值時的處理方式;還有 rtl,可以指定圖表是否要由右到左顯示。
empty:資料若有空白值的處理方式
用 empty 屬性可以指定 SPARKLINE 遇到空白的值該怎麼辦,有 ignore 跟 zero 這兩種參數可以選擇,預設是 ignore。
- 設定 ignore 的話會跳過空白,不繪製直條圖。
- 設定 zero 的話會把空白值視為 0。
我們用一樣的數值畫圖,兩者比較一下。首先是 ignore:
=SPARKLINE(AF4:AN4, {"charttype", "column";
"empty", "ignore"})
在第二個值是空白的,而 SPARKLINE 直接忽略它,繼續畫了下一個(第三個值 -1)直條。
再來是 zero:
=SPARKLINE(AF8:AN8, {"charttype", "column";
"empty", "zero"})
同一組資料,但你會看到這邊 SPARKLINE 就把空白值當作 0,畫了一個「空」的直條。
nan:資料若有非數字的處理方式
再來是 nan,也是類似的!我們可以用 nan 屬性指定 SPARKLINE 遇到非數字的值該怎麼辦,有 ignore 跟 convert 這兩種參數可以選擇,預設是 ignore。
- 設定 ignore 的話會跳過非數字的值,不繪製直條圖。
- 設定 convert 的話會把非數字的值視為 0。
同樣地,用一樣的數值畫圖,兩者比較一下。先看看 ignore:
=SPARKLINE(AF12:AN12, {"charttype", "column";
"nan", "ignore"})
第二個值出現一顆燈泡,不是數值。SPARKLINE 函式跳過了燈泡,繼續往下畫了直條圖。
再來看看 convert:
=SPARKLINE(AF16:AN16, {"charttype", "column";
"nan", "convert"})
這邊 nan 屬性設定成 true,所以 SPARKLINE 就把這個燈泡轉換成 0 繼續繪圖了。
rtl:是否以從右到左的方向呈現
最後就是 rtl,只要參數設定成 true 就能讓 SPARKLINE 在繪圖時以從右到左的方向呈現。來看看這個範例:
=SPARKLINE(AF16:AN16, {"charttype", "column";
"rtl", true})
原圖從左到右繪製的話,應該會顯示 1、1、-1、1 ... 這個順序,但上面的圖卻是 1、-1、1、0 ...,正就是從右到左的順序了,像是水平翻轉過來一樣。
圖表顏色彙整
- 如果你想用英文指定顏色:請到這篇維基百科的文章,複製「實名」欄位裡的英文名稱、在你的 color 屬性後貼上就可以囉!
- 如果你想用 HEX 色碼指定顏色:我也幫你準備好了!請你點開這個連結:
選到喜歡的顏色後,就可以到 HEX 那個欄位複製色碼了。
這是 SPARKLINE 系列文的最後一篇文章,我們介紹了 SPARKLINE 函式可以使用的圖表、還有屬性跟參數。多做幾次,就會慢慢習慣了!
如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!
我是喜特先生,Mr. Sheet,我們下個教學見!