現如今大數據已無所不在,并且正被越來越廣泛的被應用到歷史、政治、科學、經濟、商業甚至滲透到我們生活的方方面面中,獲取的渠道也越來越便利。
今天我們就來聊一聊“大屏應用”,說到大屏就一定要聊到數據可視化,現如今,數據可視化由于數據分析的火熱也變得火熱起來,不過數據可視化并不是一個新技術,可視化數據就是用可視化的方式展現的數據。而數據大屏作為大數據展示媒介的一種,廣泛運用于各種展示廳、會展、發布會及各種狂歡節中,其中不乏一些通用的處理方案:阿里的DataV、百度的Suger、騰訊RayData等等。
隨著物聯網、5G等各種跟連接有關的技術的出現與發展,每個人手中掌握的數據量都呈指數級增長,光看這些數是看不過來也看不懂的,“數據可視化”就是一種簡化,讓艱難的數據理解過程,變成——看顏色,辨長短,分高低。從而大大縮短理解數據所需的時間。
因公司的自研產品涉及到BI模塊,因此數據大屏展示的需求孕育而生(數據大屏需求已經完成)。
下面是本人針對這個數據大屏需求前期做的一些探索實踐,數據也是mock的
圖表選擇
六種基本圖表涵蓋了大部分圖表使用場景,也是做數據可視化最常用的圖表類型:
- 柱狀圖?用來反映分類項目之間的比較;
- 餅圖?用來反映構成,即部分占總體的比例;
- 折線圖?用來反映隨時間變化的趨勢;
- 條形圖?用來反映分類項目之間的比較;
- 散點圖?用來反映相關性或分布關系;
- 地圖?用來反映區域之間的分類比較。
基本圖表類型都有通用的樣式,不過多的展開講解。我們更多的考慮如何選擇常用圖表來呈現數據,達到數據可視化的目標。基本方法:明確目標?—>?選擇圖形?—>?梳理維度?—>?突出關鍵信息。
數據請求推送
當信息一旦準備就緒,我們就需要從服務器獲取它們。這里我們需要一種基于推送的方法,例如 WebSocket 協議、輪詢、服務器推送事件(SSE)以及最近的 HTTP2 服務器推送。這里我們簡單比較一下 WebSocket 與輪詢。
輪詢需要客戶端定時向服務器發送ajax請求,服務器接到請求后返回響應信息。這就需要大量的占據服務器資源。同時在HTTP1.x協議中也存在一些比如線頭阻塞、頭部冗余等問題。所以這種方案直接pass了。
再來說說 WebSocket,建立在 TCP 協議之上,數據格式比較輕量,性能開銷小,通信高效,可以發送文本,也可以發送二進制數據。同時它還沒有同源限制,客戶端可以與任意服務器通信。還有一點 WebSocket 通常不使用 XMLHttpRequest,因此,當我們每次需要從服務器獲取更多的信息時,無需發送頭部數據。反過來說,這又減少了數據發送到服務器時需要付出的高昂的數據負載代價。對于數據大屏需要實時獲取數據,這無疑是最高效的。
多點使用例子,多點看別人的模塊?