最近一直在看ECharts相关的内容,进展却不怎么理想,特认真总结如下基础知识:

1)

ECharts总体框架和其中各个部分:图类、组件、接口、基础库的具有应用方法和应该把握的细节,并通过实际的例子熟悉和掌握各个控件。只有打牢基础才能真正的为下步的工作做好准备,熟练的属性代码的编程技巧,才能做出更好的专题界面。

Echarts底层是基于ZRender(一个全新的轻量级canvas类库),创建了坐标 系,图例,提示,工具 箱等基础组件,并在此上构建出折线图、柱状图、散点图、K线图、饼图、雷达图、地图、和弦图、力导向布局图、仪表盘以及漏斗图,同时支持任意维度的堆积和多图表混合展现。

2)

重点总结:要求:了解ECharts特性中列举的每一项特性,并能找到实例中的例子,并且在实例中操作。

       a.) ECharts一种支持多少种图表?有多少个组件?列举出中英文名称。

  共11类图表:折线图(line)、柱状图(bar)、散点图(scatter)、k线图(k)、饼图(pie)、雷达图(radar)、和炫图(chord)、力导向布局图(force)、地图(map)、仪表盘(gauge)、漏斗图(funnel)。
   7种组件:标题(title)、详情气泡(tooltip)、图例(legend)、值域(dataRange)、数据区域(datazoom)、时间轴(timeline)、工具箱(toolbox)。

  更加具体组件:Axis(坐标轴)、Grid(网格)、Polar(极坐标)、Title(标题)、Tooltip(提示)、 Legend(图例)、DataZoom(数据区域缩放)、DataRange(值域漫游)、Toolbox(工具箱)、Timeline(时间轴)。



  官网上如下图所示:
  

详细划分后如下图:
  

   b.) 哪些特性可以让用户修改图表中的数据?哪些特性帮助用户进行信息筛选(专注)?哪些特性帮助实现了用不同的方式解读同样的数据?
     答:改图表中的数据:拖拽重计算、数据视图   信息筛选:图例开关、数据区域缩放功能、值域漫游

    帮助了解不同的方式:动态类型切换、多图联动、多维度堆积、混搭

     c.) 怎么引入ECharts?有几种方式?有什么不同?这里重点讲述其中的不同

   第一种方法是packet引入,这是开发时最好的做法,不管是开发echarts还是用echarts都是,因为文件未被合并压缩,所有的错误能立马定位到出错的地方从而让你

快速知道可能问题会出在哪。但这并不适合直接上线,原因就是上面说的,文件太大,加载太慢,这样上网会被骂死的,因为传送将会花费大量的时间,用户肯定忍受不了。

 require.config({
packages:[{
name:'echarts',
location:'../js/echarts',
main:'echarts'
},{
name:'zrender',
location:'../js/zrender',//zrender与echarts在同一级目录
main:'zrender'
}
]
});

   第二种方法是模块化单文件引入,真正上线时如果你是模块化的项目,应该用连接压缩好的单文件,也就是第二种。

但问题可能就来了,如果我只用到一个图表,如果直接用第二种方式上线可是把所有图表都打包在一起啊,就会造成资源的严重浪费,那么最真实做法是项目打包,用到什么

就打包什么,这种方法效率好。

 require.config({
paths: {
echarts: '../js/echarts', //echarts.js所在的路径
'echarts/chart/funnel': '../js/echarts'   //把所需图表指向单文件
} });
配置好后可以通过动态加载使用echarts
function(ec){
var mychart=ec.init(domMain);
var option={...}
myChart.setOption(option);
}

   第三种方法就是标签式单文件引入,其实还是因为使用方的环境和水平差异较大所来的。其实这个单文件的构建只是我们用一个大闭包把模块加载器和echarts打包在

一起,通过一个全局的命名空间echarts/zrender对外暴露出去而已。内部还是模块化的,只是使用方就当命名空间来用就行,这可以免去很多不熟悉模块化的开发人员在管

理各种调用时序、声明、回调之类的麻烦。

   对于模块化问题大家可以多去看看CMD规范、AMD规范。

3)、第三个重点内容总结:

    函数参数ec大多数组件都能支持称为“九宫格自由布局”的方式,怎么理解?那些组件支持?

    

   这就是九宫格自由布局,x支持left、center和right,y 支持right、center和bottom

  这样x,y就能把页面划分为9个区域,可以任意定位在一处。x/y除了支持语义文本,还能更加特殊的传入数值做绝对定位比如:{x:100, y:100}。甚至有个别组件还能支持百分比:x:‘10%’代表横向定位在总宽度*10%的位置。

   注意:js数据类型没有‘10%’百分比这一说,设置时是字符串,内部逻辑会处理为百分比。

4)Formatter是万金油,可以实现高度个性化的需求,那些地方支持formatter?

  首先大家要认识到Formatter是做文本格式化用的。因为不可能内置文本显示能满足所有需求,所以在做个性化定制是formatter显得尤为重要和灵活,不仅是满足格式要求,甚至可用于满足图形化的需求,功能很是强大。

  最常见的是tooltip、axisLabel、itemStyle.*.label.formatter
   
   
     异步回调方式填充tooltip
   

  这就是一个异步回调的模拟,可以把setTimeout理解为一个ajax的回调。当网络请求回来内容时callback调用填充tooltip内容就是一个异步回调填充tooltip的过程。保证了交互的准确性,总之功能很强大,大家慢慢研究挖掘。

重点提示:永远别忘了数据在你自己的手里,option是你传个ec的,如果任何地方的回调变量或数据不能满足你的需求,直接从你自己的option里找。

 5)如何利用dataZoom实现按需加载特定区间数据?比如显示一个全年的趋势作为dataZoom,仅加载当前选定的区间数据?dataZoom交互发生区间变化后按需请求特定区间数据并加载?

  首先要理解dataZoom的两个关键属性,xAxisIndex、yAxisIndex属性用来指定缩放控制的类目轴,比如湖区全局的抽象数据,用12个月或者365天。并且要注意realtime属性,因为动态请求和交互行为,所有就不能把realtime设置成flase,否则就没法运行了。

未完待续。。。。。。

ECharts学习总结(三)-----基本概念分析的更多相关文章

  1. ECharts学习总结(三):ECharts图表对象的初始化(init)详解以及注意事项

    一.相关js文件的引入 这里我们采用标签式引入文件的方式,我们引入两个js文件,一个是esl.js文件和一个echarts.js. <script src="js/esl.js&quo ...

  2. echarts学习(上)

    echarts 学习之路 学习思路 初识echarts 编写自己的echarts图表 根据需求编写工作中的echarts图表[进阶篇] github地址:https://github.com/liso ...

  3. echarts学习总结

    ECharts学习总结使用步骤1 引入ECharts <script src="echarts.min.js"></script>2 绘制一个简单的图表 为 ...

  4. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  5. 从零开始学习jQuery (三) 管理jQuery包装集

    本系列文章导航 从零开始学习jQuery (三) 管理jQuery包装集 一.摘要 在使用jQuery选择器获取到jQuery包装集后, 我们需要对其进行操作. 本章首先讲解如何动态的创建元素, 接着 ...

  6. 前端学习 第三弹: JavaScript语言的特性与发展

    前端学习 第三弹: JavaScript语言的特性与发展 javascript的缺点 1.没有命名空间,没有多文件的规范,同名函数相互覆盖 导致js的模块化很差 2.标准库很小 3.null和unde ...

  7. Android Animation学习(三) ApiDemos解析:XML动画文件的使用

    Android Animation学习(三) ApiDemos解析:XML动画文件的使用 可以用XML文件来定义Animation. 文件必须有一个唯一的根节点: <set>, <o ...

  8. 三、Android学习第三天——Activity的布局初步介绍(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 三.Android学习第三天——Activity的布局初步介绍 今天总结下 ...

  9. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB

    JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...

  10. MyEclipse Spring 学习总结三 SpringMVC

    MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...

随机推荐

  1. Spark Job具体的物理执行

    即使采用pipeline的方式,函数f对依赖的RDD中的数据集合的操作也会有两种方式: 1.f(record),f作用于集合的每一条记录,每次只作用于一条记录 2.f(records),f一次性作用于 ...

  2. 用fmt标签对EL表达式取整

    本篇文章转载自:https://blog.csdn.net/u013400939/article/details/47948541 一般来说我们是无法实现EL表达式取整的.对于EL表达式的除法而言,他 ...

  3. HTML5 跨文档消息传输

    对窗口对象的message事件进行监听 window.addEventListener("message", function(event) { // 处理程序代码 }, fals ...

  4. 01_10_SERVLET如何连接Mysql数据库

    01_10_SERVLET如何连接Mysql数据库 1. 实现类 public void doGet(HttpServletRequest request, HttpServletResponse r ...

  5. 【最大权闭合子图 最小割】bzoj1497: [NOI2006]最大获利

    最大权闭合子图的模型:今天才发现dinic板子是一直挂的…… Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在 ...

  6. 共享服务-FTP基础(一)

    介绍:文件传输协议FTP 两种模式:服务器角度 主动(PORT style):服务器主动连接 命令(控制):客户端:随机port --- 服务器:tcp21 数据:客户端:随机port ---服务 ...

  7. 15Shell脚本—流程控制

    流程控制语句 尽管可以通过使用Linux命令.管道符.重定向以及条件测试语句编写最基本的Shell脚本,但是这种脚本并不适用于生产环境.原因是它不能根据真实的工作需求来调整具体的执行命令,也不能根据某 ...

  8. overtrue/wechat 包 由 sys_get_temp_dir 引发的 the directory "c:\Windows" is not writable

    vendor\overtrue\wechat\src\Foundation\Application.php registerBase 方法 在初始化属性时 $this['cache'] = funct ...

  9. crond定时操作 crontab

    * * * * *  分别表示 分钟  小时  日  月  星期(0-6) 30 17,28,19 * * *  或 30 17-19 * * *  在每天的17-19小时半点时刻执行 30 8-18 ...

  10. python数据类型之字符串(str)和其常用方法

    字符串是有序的,不可变的. 下面的例子说明了字符串是不可变的 name = 'alex' name = 'Jack' """ 并没有变,只是给name开启了一块新内存,储 ...