iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
1
AI & Data

[BI工具] 以Redash為資料視覺化方案之選擇與實踐系列 第 10

[Redash] 圖表 Boxplot、Map 介紹

  • 分享至 

  • xImage
  •  

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 

https://ithelp.ithome.com.tw/upload/images/20181018/20111638fiHcv4Xx1w.png

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

https://ithelp.ithome.com.tw/upload/images/20181018/201116387eDmWk9WJH.png

SELECT TotalSuccessfulPassesAll
FROM PremierLeague.Actions 
WHERE TeamID = 1

https://ithelp.ithome.com.tw/upload/images/20181018/20111638Pmi2wplJNv.png

也難怪圖表名稱會標示成 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)

https://ithelp.ithome.com.tw/upload/images/20181018/20111638xwZdmqCR6x.png


而在 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 來設定空值給定的資料:
https://ithelp.ithome.com.tw/upload/images/20181107/20111638wULosx5ptY.png

https://ithelp.ithome.com.tw/upload/images/20181018/20111638v5HUP1JYFQ.png

其中 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 頁籤可選擇各分組的顏色:

https://ithelp.ithome.com.tw/upload/images/20181018/20111638qcMN4Mv31I.png

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

https://ithelp.ithome.com.tw/upload/images/20181018/20111638nHX3sqaC11.png

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


使用案例

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

ps. 文章同步發表於 Medium


上一篇
[Redash] 圖表 Chart 進階介紹
下一篇
[Redash] 相見恨晚的 Pivot Table
系列文
[BI工具] 以Redash為資料視覺化方案之選擇與實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言