前端數據可視化插件有很多,但我用過的只有Highcharts(https://www.hcharts.cn/)、Echarts(http://echarts.baidu.com/)和D3(https://d3js.org/),
Web開發過程中選擇使用哪一個插件是很重要的問題。就我個人而言,一般會從以下幾點考慮。
1.兼容性
使用一個插件之前必須要先評估一下它對瀏覽器的兼容性,不然寫完了發現沒法兒用就得不償失了。
經過多次嘗試,我初步判斷這三個插件的兼容性是這樣的:
- Highcharts 兼容 IE6 及以上的所有主流瀏覽器,完美支持移動端縮放、手勢操作。
- Echarts 兼容 IE6 及以上的所有主流瀏覽器,同樣支持移動端的縮放和手勢操作。
- D3 兼容IE9 及以上的所有主流瀏覽器,對於移動端的兼容性也同上。
也就是說,這三個插件都兼容IE9及以上的所有主流瀏覽器,但如果開發需求中包括IE7/IE8,那么就只能選擇Highcharts或者Echarts了。
2.是否免費/開源
- Highcharts 非商業免費,商業需授權,代碼開源。
- Echarts 完全免費,代碼開源。
- D3 完全免費,代碼開源。
考慮到Highcharts用於商業用途時還需要授權,而其它兩個都不需要,那么在其他條件都相同的情況下,可以考慮用另外兩個插件。
3.難易程度
- Highcharts 基於SVG,方便自己定制,但圖表類型有限。
- Echarts 基於Canvas,適用於數據量比較大的情況。
- D3.v3 基於SVG,方便自己定制;D3.v4支持Canvas+SVG,如果計算比較密集,也可以選擇用Canvas。除此之外,D3圖表類型非常豐富,幾乎可以滿足所有開發需求,但代碼相對於以上兩個插件來說,會稍微難一點。
基於此,如果你能力很強,可以直接用D3。反之,如果你是一個初學者或者對於這方面沒那么熟悉,那么就要從這幾點來考慮了:如果數據量比較大,可以考慮Echarts;如果只是一些簡單的數據,且客戶對界面定制較多,則可以考慮使用highcharts;如果前兩者都不能滿足需求,那么就只能用D3來一點一點做了。
一般:
1、開發時間短,所以也就限制了D3.js的使用。
2、要盡量的減少開發的成本,所以也就不能使用hightcharts.js(hightcharts是一款個人免費,商業付費的框架)。所以在再三的比對之下最終選擇了echarts.js