以前三週分別針對Berkeley Earth,AQICN和Earth Nullschool三個網站的前端技術作了總結,分別簡稱爲BAE,今天咱們拋開技術,和你們聊兩點: 前端
三個網站的對比程序員
數據可視化的認識web
若是作一個比喻,個人感受是B像一個事業有成的中年,A像一個充滿活力的青年,而E則是一位不拘一格的藝術家。以下是三個網站在中國區域的AQI可視化效果,看到這個對比圖後,你的第一印象是什麼?中間京東618廣告?聽的我一口血吐到屏幕上。 json
首先,Berkeley有大量的原始數據,對數據管理上有很高的要求,好比歷史數據的對比,同時採用netcdf的數據存儲形式,供用戶下載。做爲一個科研機構,他的重心是研究,可視化上更側重反映數據的統計和分析,好比全球氣溫,中國的污染等,所以,基於數據的自身需求兩方面,更側重服務端開發,對前端要求很小,因此,B站很適合看成數據服務提供者。 安全
其次,從AQICN投放廣告的行爲,不難理解,這是一個應用爲主的網站,自己並不側重於數據的維護,而側重於給用戶展示實時實用的數據,咱們很容易從A站找到當前的氣溫,AQI等數據,48小時內的狀況,將來兩週的趨勢等,但數據在時間維度上僅支持較短區間。本質上來看,數據管理並非本身的份內事,如何將這麼多種類,雜亂的數據,以一種規範,高效,安全的方式傳輸,是他的核心,因此代碼的更大一部分是在數據的請求,解析,而在前端展示上,風格就是四個字:簡單易用。這和B站有很鮮明的對比,前者數據單一,但專業性很強,好比近60多年的全球氣溫,最近半年天天的PM數據,然後者數據類型應有盡有,但更大衆化,好比多數用戶不關心去年今天的氣溫,但想知道明天的天氣預報。 工具
最後是我最欣賞的E站,很好的可視化效果,同時也沒有喪失實用性。不知道我瞭解的是否真實:做者是一位跳傘愛好者,同時也是微軟的一名開發人員,每次跳傘都要了解當前的天氣,特別是風,正是基於本身的這個需求,同時也有開發能力,因此搭建了這個網站,來方便全球跳傘愛好者,逐步擴展和豐富。這裏有很多出彩點:統一的傳輸格式epak,數據解析和傳輸上都有較好的保證;合理使用D3等第三方庫,代碼很輕;在實用和可視化效果上都很出色,技術和藝術上都很棒。說了這麼多,無非是想告訴廣大女性,若是有幸認識了一位優秀的程序員,這是上天賜予你的機會,千萬不要錯過。固然,這裏的重點是優秀這一稀缺性。 性能
既然是數據可視化,數據則是其中的核心,BAE三個網站,同一類型的數據,以本身不一樣的理解和定位,各自找到了其稀缺性。好的可視化是一種表達數據的方式,可以幫助你發現那些盲點。因此,當咱們面對問題時,不要急於解決問題,而是要抓住問題的本質。 學習
數據可視化是一個很大的範疇,如上是FlowingData網站的一個簡單分類,把一份數據從處理,統計,傳輸到最後的設計,渲染,這是一個很長的環節,技術上能夠只攻克其中一個點,但真的作事情,則要把這條線貫通。 大數據
目前可視化的工具和庫也不少,好比D3,Echart等,也有不少開放的數據,都是值得咱們研究和學習的對象,一份數據,能夠多個維度的展示其不同的價值。以下圖,是最近十年的全球氣溫變化,以地球爲載體體現氣溫變化,以統計圖現實具體的數據變化,同時輔以時間軸和播放速度,豐富交互體驗。 網站
喜歡如上範例的,在公衆號中回覆「planet」,獲取示例代碼
另外,若是在數據的前面加上一個大,就變得更有意思了,如何保證數據傳輸和解析性能,如何實現大數據的渲染,傳統的json已經沒法勝任,相比而言,arraybuffer和webgl是大數據下Web傳輸和渲染的必然趨勢。以下,左側是WebGL渲染,右側是Canvas2D方式,仔細看綠色區域的過渡效果,前者平滑,後者略有跳幀,留給你們一個問題,你以爲跳幀最可能的緣由是什麼?自認爲這是一個好問題,由於Canvas2D是能夠作到平滑的,只是...要清楚爲何。
我並無在數據可視化方面有過多的學習和研究,若是對這方面有興趣,想要深造,推薦這個網站(flowingdata.com)和它推薦的書。所謂的創新,不是憑空的想象,而是日積月累的知識,不經意的碰撞所迸發出的火花。咱們不能預測某個引爆點,但惟有不斷充實自我,方能爲這個奇點的到來作好準備。
If there is a light, don't let it go out. 有生之年必定要去一次的演唱會