視覺化時間序列的最佳實務
在同一個儀表板上組織時間序列圖表,述說故事。
我們將檢視在兩個不同時間段之間比較指標的不同策略,例如將本週與上週進行比較,或將去年與前一年進行比較。我們將使用 Metabase 隨附的範例資料庫,以便您可以跟著操作。此範例資料庫包含一家從 2015 年到 2020 年存在的完全真實、並非虛構公司的訂單資訊。為了展現我們的查詢產生器技能,我們對 2018 年與 2019 年下的訂單進行比較感興趣。
本文以先前關於時間序列比較的文章為基礎,但在此我們涵蓋兩種不同的策略
在儀表板上並排比較時間段
此模式易於維護且易於擴充(透過修改卡片或新增卡片),而且當您想要比較多個指標時特別有用。
這裡的第一步是提出問題。對於我們的資料,我們將選取 Orders
表格。我們將摘要訂單計數,並依月份群組。然後我們將問題儲存為「每月訂單數」。
接下來,我們會將我們的「每月訂單數」問題新增至新的儀表板,並將該儀表板命名為「並排比較」或其他名稱。然後我們會再次將相同的問題「每月訂單數」新增至儀表板(也就是作為第二張卡片),我們將其放置在原始問題的右側。
我們在這裡做的是在儀表板中建立兩個欄:左欄將有一個日期範圍,而右欄將有第二個日期範圍。我們將附加篩選器以控制左欄卡片的日期範圍,以及另一個將控制右欄日期範圍的篩選器。
我們將為每個篩選器設定預設日期範圍,使用「介於」選項(您可以輸入日期,而不是按一下日曆)。
- 日期 1 範圍:
01/01/2018
至12/31/2018
- 日期 2 範圍:
01/01/2019
至12/31/2019
儲存您的變更,並重新整理頁面以更新結果。我們也可以將其他篩選器附加到儀表板,我們可以將其連接到兩個欄中的卡片,例如,如果我們想要依特定類別篩選訂單。
您可以新增其他具有時間序列的卡片,並將它們連接到該欄的對應篩選器。
並排比較的提示
請記住,當在手機上檢視時,此模式會失效,因為 Metabase 會將每張卡片摺疊成單一欄。您仍然可以理解儀表板的意義,但這需要您仔細查看每張卡片的日期。
每個欄都使用相同的問題
這樣,如果您想要修改問題,您只需要更新一個問題,兩個欄都會取得更新。
確保兩個卡片之間的軸線相同
Metabase 預設為自動調整 y 軸以考量值,但如果一張卡片的上限為 500,而另一張卡片的上限為 1000,則可能會難以看出兩張卡片之間的差異。在儀表板編輯模式中,將滑鼠游標停留在卡片上方,然後按一下調色盤圖示以編輯視覺化設定。按一下軸線標籤,關閉自動 y 軸範圍,並設定 y 軸最大值(您應該將最小值保留為 0)。
使用目標線和/或趨勢線
新增線條可以讓人員更容易區分圖表之間的指標效能。很明顯,2019 年的訂單超出目標的次數比 2018 年多。
新增文字卡片以群組相關卡片
為了讓人員更容易理解分割設定,我們可以新增文字卡片,表示每個欄對應其中一個篩選器:左欄對應日期 1,右欄對應日期 2。在儀表板編輯模式中,您可以透過將滑鼠游標停留在卡片上方並按一下調色盤圖示,來編輯文字卡片的視覺化設定。例如,對於具有 ## Date 1
的卡片,我們已將垂直對齊設定為「頂端」,將水平對齊設定為「置中」,並關閉顯示背景設定。
使用色彩區分欄
您可以使用不同的色彩來區分每個欄中的卡片。將滑鼠游標停留在卡片上方,然後按一下調色盤圖示以更新卡片的視覺化設定。
如需儀表板的更多提示,請查看BI 儀表板最佳實務。
在同一個圖表上覆蓋兩個時間序列
現在進入從根本上不同的方法。在這裡,我們將涵蓋兩種模式
使用自訂欄來群組靜態日期範圍
在這裡,我們將使用 case
陳述式來建立自訂欄。我們可以使用 between 運算式。在這裡,我們將使用自訂運算式建立新的欄。
case(between([Created At], "2018-01-01", "2018-12-31"), "2018", between([Created At], "2019-01-01", "2019-12-31"), "2019")
此運算式表示的是,對於結果中的每筆記錄(列),新增一個新的欄。如果 Created At
欄位介於 2018 年 1 月 1 日和 2018 年 12 月 31 日之間,則將值「2018」放入該記錄的 Year 欄中。如果 Created At
日期落在 2019 年的範圍之間,則改為放入「2019」。否則,將其留空。接下來,我們要篩選我們建立的「Year」欄不為空的所有記錄。
在這裡,我們在同一個圖表上有兩個時間序列:2018 年與 2019 年
您也可以將其視覺化為長條圖
現在,如果您想要比較相對於目前日期的日期,您可以使用 interval
函數在 case
陳述式中,但接下來我們將涵蓋 interval
的不同使用案例。
使用自訂運算式比較上週與前一週
我們已在先前關於 時間序列比較 CountIf
彙總和 between
函數的文章中,涵蓋了一種比較時間段的方法。這次我們將使用 interval
函數,它可讓我們指定相對於目前日期的持續時間。
範例資料庫只有到 2020 年的資料(不確定公司發生了什麼事),因此您需要自行在您的資料上試用,但以下是其運作方式
以 Orders
表格作為我們的起始資料,我們將新增兩個摘要(指標)。在摘要區段中,我們將使用自訂運算式定義一個摘要,我們將其命名為「上週」
CountIf(interval([Created At], -1, "week"))
在間隔用語中,0 表示本週,因此我們寫入 -1,僅在該列的 Created At
是上週的日期時才計算訂單。我們也可以將「week」變更為「day」、「month」、「year」或其他間隔;請查看您資料庫的文件,以查看它支援哪些間隔。
接下來,我們將為「前一週」定義第二個摘要。
CountIf(interval([Created At], -2, "week") AND NOT interval([Created At], -1, "week"))
在這裡,我們表示僅計算前兩週的所有訂單,除了 (AND NOT
) 上週的訂單。
最後,我們需要群組摘要。由於我們想要查看上週一與前一週一的績效比較(以及每週的其他每一天),因此我們會想要依星期幾群組 Created At
。