1、ECharts 是一个轻量级的 javascript 图形库,纯 js 实现,MVC 封装,数据驱动。
2、Svg 和 Canvas 是两个可以选择的类库之一,其中 svg 交互性更好,性能较弱,不适用于移动端,在绘制数万个点时会崩溃。而 canvas 的渲染速度和性能更好,echarts 在 canvas 上构建一层 MVC层,使得它可以像 svg 一样交互。
3、ECharts 的特点:重要性和优先级依次递减,设计效果直观、生动,能够交互,可个性化定制。
4、ECharts 总体结构是基于 MVC 架构的,各部分的主要作用是:
Storage(M):模型层,实现图形数据的CURD(增删改查)管理;
Painter(V):  视图层,实现canvas 元素的生命周期管理,即:视图渲染、更新控制、绘图;
Handler(C):控制层,事件交互处理,实现完整的dom事件模拟封装。

Storage 是一个类似数据的仓库,提供各种数据的读、写、改、删等操作。Painter 持有 Storage 对象,即:Painter 读取 Storage 进行绘图。Handler持有了Storage 对象和 Painter 对象,控制层对模型层有CURD关系,即:Handler 通过访问 Storage 对象提供的数据增删改查操作,实现事件交互处理所需的数据部分;控制层与视图层存在 call 关系,即:Handler 通过访问 Painter 对象提供的视图操作,实现事件交互处理的视图部分。