echarts入門


  一直好奇,今晚就學習了一番,算是入門的級別,學習總是一個漸進的過程。

  一路記錄,一路足跡。

一:學習資料

1.主要參考的代碼

  https://github.com/shengxinjing/imooc-echarts

 

2.官網

  http://echarts.baidu.com/

 

3.視頻

  https://www.imooc.com/learn/687?_wv=1031

 

二:Echars特性

1.特性

  ECharts,一個純 Javascript 的圖表庫,可以流暢的運行在 PC 和移動設備上,兼容當前絕大部分瀏覽器(IE8/9/10/11,Chrome,Firefox,Safari等),底層依賴輕量級的 Canvas 類庫 ZRender,提供直觀,生動,可交互,可高度個性化定制的數據可視化圖表。

 

2.支持

  • 豐富的圖表類型 

    ECharts 提供了常規的折線圖、柱狀圖、散點圖、餅圖、k線圖,用於統計的盒形圖,用於地理數據可視化的地圖、熱力圖、線圖,用於數據關系可視化的關系圖,treemap,多維數據可視化的平行坐標,還有用於BI的漏斗圖,儀表盤,並且支持圖與圖之間的混搭

  • 動態數據 

    ECharts由數據驅動,數據的改變驅動圖表展現的改變。因此動態數據的實現也變得異常簡單,只需獲取數據,填入數據,ECharts會找到兩組數據之間的差異然后通過合適的動畫去表現數據的變化。

  • 移動端的優化 

    流量珍貴的移動端需要圖表庫的體積盡量小。ECharts和ZRender代碼的重構,帶來了核心部分體積的減小。ECharts和ZRender代碼的重構帶來了核心部分體積的縮小。ECharts提供按需打包的能力,因為ECharts的組件眾多,並且會持續增加。

  • 多維數據支持以及豐富的視覺編碼手段 

    ECharts 3開始加強了對多維數據的支持。除了加入平行坐標等常見的多維數據可視化工具外,對於傳統的散點圖,傳入的數據也可以是多個維度的。配合視覺映射組件visualMap 提供豐富的視覺編碼,能夠將不同維度的數據映射到顏色,大小,透明度,明暗度等不同的視覺通道。 

  • 深度的交互式數據探索

    交互是從數據中發掘信息的重要手段。“總覽為先,縮放過濾按需查看細節”是數據可視化交互的基本需求。 
echarts 提供了legend visualMap dataZoom tooltip等組件以及圖表附帶的漫游,選取等操作提供了數據篩取、視圖縮放、展示細節等能力。echarts 3 中,對這些組件進行了廣泛增強,支持在數據的各種坐標軸、維度進行數據過濾、縮放,以及在更多的圖中采用這些組件。 

  • 大數據量的顯示

    現在的時代是大數據時代,越來越多的數據堆積,如何才能使這些數據發揮它應有的價值是一件值得我們深思的事情。echarts對大數據的處理能力非常好,借助 Canvas 的能力,ECharts 在散點圖中能夠輕松展現上萬甚至上十萬的數據。 

  • 多個坐標系的支持

    echarts 3 開始獨立出了“坐標系”的概念,支持了直角坐標系(catesian,同 grid)、極坐標系(polar)、地理坐標系(geo)。圖表可以跨坐標系存在,例如折、柱、散點等圖可以放在直角坐標系上,也可以放在極坐標系上,甚至可以放在地理坐標系中。 

  • 絢麗的特效

     

三:ZRender介紹

1.說明

  ECharts 底層依賴着輕量級的Canvas類庫ZRender。

  ZRender(Zlevel Render)是一個輕量級的Canvas類庫,MVC封裝,數據驅動,提供類DOM事件模型。

 

2.MVC

  MVC核心封裝實現圖形倉庫、視圖渲染和交互控制: 
    - Stroage(M) : shape數據CURD管理 
    - Painter(V) : canvas元素生命周期管理,視圖渲染,繪畫,更新控制 
    - Handler(C) : 事件交互處理,實現完整dom事件模擬封裝 
    - shape : 圖形實體,分而治之的圖形策略,可定義擴展 
    - tool : 繪畫擴展相關實用方法,工具及腳手架

  

 

3.特色

  1 數據驅動 
    利用zrender繪圖,你只需做的是定義圖形數據,剩下的事情就交給zrender. 
  2 完整的事件封裝 
    用DOM事件模型去操作canvas里的圖形元素。

    不僅可以響應zrender全局事件,甚至可以為特定的shape添加特定的事件。 
  3 高效的分層刷新 
    如css中的z-index一樣,你可以定義把不同的shape放在不同的層中,這不僅實現了視覺上的上下覆蓋,更重要的是圖形元素發生變化后的refresh將局限在發生了變化的圖形層中。 
  4 強大的動畫支持 
    提供promise式的動畫接口和常用緩動函數,輕松實現各種動畫需求 
  5 易於擴展 
    分而治之的圖形定義策略允許你擴展自己獨有的圖形元素,你既可以完整實現三個接口方法(brush,drift,isCover),也可以通過base派生后僅實現需要關心的圖形細節。

 

四:Echarts與HighCharts的比較

1.比較  

  • highcharts是基於SVG的,SVG的節點可以向dom節點一樣控制,所以在自主創作圖形方面非常方便,但是SVG是2D矢量圖,不能畫3D圖形,而且SVG的節點都是對象,會非常占用內存。

  • 同樣雖然canvas也只支持2D繪圖,不支持3D繪圖。但是canvas繪圖不會給每個點生成對象,因此繪制圖形可以非常快,占用內存特別少,兼容性也比較好,除了IE6,其他瀏覽器都可以支持。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM