[Redash] 圖表 Boxplot、Map 介紹

Mars Weng
MarsW-Redash
Published in
6 min readOct 18, 2018

Boxplot 箱線圖

可以看常見的五個統計量:
最小非異常值、中位數、最大非異常值、第1, 3 四分位數,
同時也可以看這個資料集的分布狀況(資料是否有很極端的異常值)
https://wiki.mbalib.com/zh-tw/%E7%AE%B1%E7%BA%BF%E5%9B%BE

在 Redash 當中,Boxplot (Deprecated) 的圖表
基本上只是呈現 query 出來的數據,無法選擇欲做圖的資料,
會直接把 row 數量筆資料,每一軸分別以 column 欄 的分佈狀況來呈現,
以此 SQL 來說,就會在圖上同時顯示「ShotsonTargetincgoals」、
「TotalSuccessfulPassesAll」的個別箱線圖

SELECT ShotsonTargetincgoals,TotalSuccessfulPassesAll
FROM PremierLeague.Actions
WHERE TeamID = 43

Boxplot 並沒有像前幾篇提到 Chart 圖表能放大縮小,
因此如果資料中,每個欄位的值差異狀況太大,也無法調整,
就會如上圖一樣不是很好比較。

另外如果想要比較某個欄位但數量不一致,
像是前面 Chart 有 Group by 可以使用,但在 Boxplot 之中就無法做到,
因為如果想要補齊資料,不管是用 Null 還是 0 Redash 都會轉成為 0,
而影響到資料正確性:

eg. 球隊 A 有 20 個球員,球隊 B 有 30 個球員,
想比較球員傳球的狀況,是否有某幾隊有明星球員,就無法以單一張 Boxplot 來檢視,要分別下兩個 query,然後自行截圖比較
(懷念起 Chart 好用的功能 0rz )

SELECT TotalSuccessfulPassesAll 
FROM PremierLeague.Actions
WHERE TeamID = 43
SELECT TotalSuccessfulPassesAll
FROM PremierLeague.Actions
WHERE TeamID = 1

也難怪圖表名稱會標示成 Boxplot (Deprecated)
此種箱型圖會比較適合看同一組對象,在不同時間點值的變化
eg. 學生成績調分、員工薪水調整、藥品改善

真正好用的 Boxplot 是藏在 Chart 之中,Chart Type 選「Box」,
還能選擇 Show All Points 看原始資料分布狀況,
就算 Team 1 出賽次數與 Team 43 次數不一仍能做圖。

SELECT TeamID,ShotsonTargetincgoals,TotalSuccessfulPassesAll
FROM PremierLeague.Actions
WHERE TeamID in (1,43)

而在 Redash 如果要將資料與地圖做整合,有兩種圖表可以用,
一個是以國家為基底的 Map (Choropleth),
另一個是以 GPS 座標為底的 Map (Markers)

Map (Choropleth)

這邊我們用 relational MySQL Database 的 World Dataset 來做範例
https://relational.fit.cvut.cz/dataset/World

SELECT * FROM world.Country

Country code type 不只支援標準的 ISO code (2碼,3碼,數字代碼),甚至國家名稱也可以。而內容 Value column 以「預期壽命 LifeExpectancy」來當呈現的資料欄位(只能擇其中一欄資料來呈現),可以用 Value format 決定數字樣式、Value placeholder 來設定空值給定的資料:

其中 Tooltip template 可以更改滑鼠移到該國家上顯示的樣式,
而 Popup template 則是更改 點選該國家上顯示的樣式。

Colors 頁籤可以調整各顏色細節以及分層級距、分群方式,
Bounds 可以調整經緯度來只顯示某地理區塊的圖表。

Map (Markers)

這邊我們用 relational MySQL Database 的 Mondial Dataset 來做範例
https://relational.fit.cvut.cz/dataset/Mondial

SELECT * FROM  Mondial.city 
WHERE Longitude is not NULL AND Latitude is not NULL
LIMIT 200

ps. 太多的資料圖表顯示很容易當掉

選擇對應的經緯度資訊與以何種欄位 Group By,圖表就會打點並針對不同分組的資料上不同的顏色,在Groups 頁籤可選擇各分組的顏色:

Map Settings 則是可以選 OpenStreetMap、Thunderforest、
OpenMapSufer、Stamen Toner、OpentopoMap 的各種版本 Map Tiles,
以及是否要對 Markers做 Cluster:

Map 不像 Chart 圖表有快照跟隨意選擇可視區域的互動功能,
但有簡單的 Zoom in / Zoom out 、拖移以及全螢幕功能也算是足夠能使用的了,Map (Markers) 也有提供篩選該顯示哪些分組資料的功能。

使用案例

在我們公司,Boxplot 會來看某一產品在某地區的價格的分佈
而 Map(Choropleth) 我們會用在呈現購買產品的客戶主要去的區域,
雖然地圖無法像是表格可以容易且仔細看詳細的該地區資料,
但是可一眼即能概覽的表示方式。

此為系列文章,傳送門在此

--

--