如何評價最新發布的ECharts 4?

ECharts 4.0正式發布了!

2018 年 1 月 16 日,百度的 ECharts 團隊對產品進行了更新,發布了時隔兩年的大版本 4.0。

ECharts 官網與 Github 地址:

ECharts

ecomfe/echarts


echarts 用戶過來回答一波。

我用echarts的第一件事就是就是給echarts蓋上一層自己的API,我叫做加輪胎。

看到4.0我就覺得我做dataSet,emmmmm,假如一開始就有dataSet我就可以少做一部分比較複雜的數據處理。echarts的數據處理方式很贊。下面我會簡單談談。不過還是建議大家使用圖表庫的時候都要自己在上面蓋一層自己的API,默認好自己一套樣式和自己的某些定製數據處理方式。像現在這樣echarts對樣式break change 之後,我們可以在自己的那層API調整代碼,然後直接影響全局而不是每個用到echarts的地方都去改一次。

先給一張截圖簡單讓大家感受一下新版數據映射關係

我比較喜歡喜歡echarts 4.0 的dataSet的原因有:

1.傳入數據接近瀏覽器直接從資料庫,csv等對中形式直接得到的數據。

2.直觀的配置數據映射邏輯,貼近用戶思考的數據配置方式,沒有數據的交叉映射邏輯。(維度的意思官網有介紹,我就不貼了。)

這幾步省去新用戶需要寫的一些數據處理邏輯,廢了老用戶好些個parser。

當然,這個dataSet還沒處理的是數據的聚合邏輯,只能多表從不同維度去分析數據,不能多表從不同顆粒度之類的去分析數據。我開始一直以為dataSet裡面會有一個關於數據聚合的數組,表格可以自由使用,類似多個grid的配置方式。比如:

當然,也可能是他們正在規劃中。

感覺剛好我處理和使用數據的習慣和他們的改版的差不多,只是限於時間和能力很多東西做的明顯echarts本身好,但很多東西都可以銜接上直接用,比較高興。

dataSet解決部分用戶的痛點,也是4.0的一(最?)大特色,至於千萬級數據渲染技術厲害不過可能很多用戶會用不到,但也可以說至少確保了在這種極端條件能不出簍子。

還有另外一個PPT中可以使用echart了。感覺很酷,要是在大學時候我可能會用上,我個人現在用不上,不做評論。

我初步了解到並關注的點基本說完,其他的有空再了解下。

其他同期發布的東西不在該題討論範圍,啰嗦一句,同期發布的其他幾個產品,也非常搶眼,希望能有一個和echarts一樣好的中文文檔。


支持了無障礙可視化,讓視覺障礙人士也可以理解圖表,這跟情懷,點個贊。


這次更新了幾塊內容,這三塊我是較大的更新

1. 整合 SVG 引擎

整合 SVG 引擎,主要定位在移動端上,有很大的性能提升。引擎本身做兼容這件事是極大的利好,畢竟屏蔽了使用差異。

但我的理解 SVG 與 canvas 本身就處在不同的使用場景下,如果在大規模渲染下一定還是 canvas 來做會更好。我理想的構架是只有圖形渲染由 canvas 做。

2. 數據與樣式映射

重點看了下數據映射這塊新功能,但並沒有重點強調。

source: [
["product", "2015", "2016", "2017"],
["Matcha Latte", 43.3, 85.8, 93.7],
["Milk Tea", 83.1, 73.4, 55.1],
["Cheese Cocoa", 86.4, 65.2, 82.5],
["Walnut Brownie", 72.4, 53.9, 39.1]
]

數據用的是行返回,而且用的是比較省位元組數的數組方式。映射圖形組件方式自然是用數組的下標,用數組下標這種方式我不推薦,這是一種很不穩定的配置,因為你對應的不是維度欄位,而是用下標,一旦數據表更新,對於前端改動是比較大的。

這種方式比起純粹的數組對象的行返回方式的問題是,前端一般需要重新構造這個結構,不然後端也要構造。而數組對象的行返回,維度已經包含了數據里,儘管說數據位元組數會多一些。

這塊的理解與 g2 的圖形語法映射還是不一樣,可能是需要兼容老版本加上理解成本與易用性的考慮,我猜。但映射這塊的能力比起 g2 還是有些弱,具體就不說了。

不過,不影響是一個很好的功能升級,希望未來在數據這塊上可以更加優化。

3. 生態延展

Echarts 在生態建設上很多年,一直在堅持和優化,這次支持 PPT 非常厲害,之前用 R 做一些分析,發現 R 上也有 echarts 的包,幾乎無所不包。Echarts 不虧是是世界級的可視化圖表庫。


一直在關注他們的產品,包括echarts,zrender,qtek(好像改名了)

看到echarts官網上有一個渲染千萬量級數據的DEMO,確實挺震撼的

前端能渲染這個數據量的技術就只有WebGL了,但是蛋疼的瀏覽器環境(IE11以上才支持)讓WebGL很難大範圍推廣

ECharts4實際上也沒有完全擁抱WebGL,基於WebGL的功能分離成EChartsGL了,應該一方面是不想把庫的體積變得太大,另一方面就是照顧瀏覽器兼容性了。

EChartsGL有幾個和mapbox gl結合的例子做的非常漂亮,我都想截圖當桌面背景了,只是其中一個例子似乎有深度衝突,看起來有點閃爍。

不說了,我去讀ECharts源碼了...


很好很強大,竟然還用比特幣做例子:ECharts Demo

可惜暫時還取代不了Trading View。


10年前的API風格保持不變,可以兼容老版本代碼(沒有改進),設計風格傻瓜化,強調配置(配置到shi,調個想要的效果就像碰運氣一樣),為什麼不改成現在前端流行setState呢?好吧,歷史原因。


echart挺強大的,但是作為一個只會python的小學生來說,JS目前還不怎麼會。這裡安利一個由echart移植到python的項目。pyecharts。

項目地址

https://github.com/pyecharts/pyechartsgithub.com


EChart在繪製這一點上已經逆天了,千萬級別的數據量我想不來在前端上如何實現,用WebAssembly嗎?讓人傷心的是當我追著他們的10萬級的數量級去優化,結果好不容易優化到10萬了,他們又搞出來一個千萬級的,一下子就斯密達了


說一下 我在意的兩點

第一點終於出了 搞出了數據與樣式分離了 要不然很快就會被後面追趕的G2超越了 還有plotly

第二點 終於不用糾結svg好 還是canvas 這點做得很好 zrender把他大一統了

其他的沒什麼了 用的人多搞個社區 工具啥的 不算進步


據說是快了,沒有實測,但官方的demo中的單次渲染速度依舊在50ms以上,也許沒更新?也許提升的不是這個地方?

對於性能來說50ms以上其實是不能接受的,1000/50=20,20fps的動畫是肉眼可以感覺到的掉幀,一個頁面有一個圖也許能忽略,但數量一旦上來,數據量一大,體驗還是很差的。

尤其同時存在實時渲染的動畫時。


1. 個人認為,dataset是最大亮點,很大程度因為dataset放棄echart使用g2

2. 小程序怎麼使用Echart?這種亮點文檔居然沒有

3. 不論使用canvas或者svg渲染,現在的我更關心是否有dom操作,因為涉及跨平台(移動瀏覽器看圖或者千萬級數據的場景很少吧,所以還是canvas王道?

———

3=&>搜索了一下,是有dom操作的,那怎麼和小程序結合呢?


挺震撼的,尤其是3D視圖特別豐富。

有點小遺憾的是我常用的儀錶盤組件沒有任何更新,就這樣,攤手。。。


推薦閱讀:

亮瞎雙眼的Power BI自定義可視化圖表
(轉)22個免費的數據可視化和分析工具推薦
數據人也要懂的「裝逼利器」,數據驅動下的「增長黑客」
10分鐘python圖表繪製 | seaborn入門(三):Boxplot與Violinplot

TAG:前端開發 | 百度 | 數據可視化 | ECharts |