echarts地图列表_史上最强大的js图表库——ECharts带你入门(转)

本文详细介绍了ECharts的引入方法,包括AMD规范的加载器esl.js、ECharts的模块化加载和单文件引入。通过实例解析了ECharts的入门示例,帮助非前端开发者理解如何在项目中使用ECharts进行数据可视化。
摘要由CSDN通过智能技术生成

PS:之前的那篇博客Highcharts——让你的网页上图表画的飞起 ,评论中,花儿笑弯了腰 和 StanZhai 两位仁兄让我试试 ECharts ,去主页看到《Why ECharts ?》简单了解了一下之后,ECharts很快吸引了我。里面引自马云的那句话“互联网还没有搞清楚的时候,移动互联网来了,移动互联没有搞清楚的时候,大数据来了”我是第一次听到,实在震撼了我啊(孤陋寡闻...)。

本来没打算写什么的。可是作为一个后端开发者,看了半天文档也迷迷糊糊,查了一堆资料也没搞懂Echarts那3个导入方法究竟是什么!我真是怒了!就有了下文。

(我相信本文对很多想要做图表的非前端开发者是有用的。不怪百度,就怪自己没有js项目经验。)

这个开源的图标库来自百度EFE数据可视化团队。Highcharts 与之比起来简直不能看啊,人家做一个图表都开始往大数据方面思考了,你还在做功能,这产品差距就不是一个数量级的。 这里就不多废话:

不贴地址了,想要了解的看一下特性就好了,想要入门的继续往下看。

ECharts 底层依赖于 Html5 的轻量级的Canvas类库ZRender ,这也是它的效果这么绚丽的原因。它与 js charts类似,不依赖其他 js 类库,相比之下 Highcharts还要依赖JQuery等类库。不过,ECharts也不是什么缺点都没有的,在线演示平台、文档,

初学者可能会被ECharts那个带你入门的那2个示例弄晕,这里来一个个解释:

1、AMD规范的加载器——esl.js,这是什么?

答:关于AMD规范可以参考阮一峰的这篇文章Javascript模块化编程(二):AMD规范 简单来说,AMD规范就是异步方式加载模块的一种方式,避免因为模块加载过慢而导致浏览器“假死”。

2、我们先来看一下echart的大概的包:

echarts.js : 经过压缩,包含除地图外的全部图表

echarts-original.js : 未压缩,可用于调试,包含除地图外的全部图表

echarts-map.js : 经过压缩,全图表,包含world,china以及34个省市级地图数据

echarts-original-map.js : 未压缩,可用于调试,全图表,包含world,china以及34个省市级地图数据

看得出,这种分类非常有意义。

3、echarts更规范的一点,那就是模块化加载,需要哪个部分就是用哪个部分。

关于Echarts的那个入门图表,我想很多新手跟我一样的迷惑,require和require.config这个两个公共方法到底什么来的?

答:AMD规范的加载器——esl.js的公共方法。(如有错误,请指正。)

4、require.config的作用是什么?

答:为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需的图表路径。一切尽在echarts-2.0.4文件夹下的src文件夹中。

5、解释一下require方法?

答:require方法有2个参数。

第一个参数为一个数组,数组元素是需要加载的echarts模块,需要哪个就加载哪个。(经本人测试,这个数组传入一个空数组都是可以的 !- -)莫非,传入不正确,会加载全部文件到内存,传入正确就加载部分模块到内存?求大神解答!

第二个参数为一个带一个参数的方法:function (ec){}, 这个ec对象就是echarts对象了。

OK,基本解释完了。可能初学者看了Eharts入门实例还是不太理解那Echarts3种导入方式的用法。(入门示例只有2种——标签式单文件引入和模块化单文件引入)

因为入门实例里,js文件指向的是百度服务器上的资源,而我们一般开发,js资源都是放在本地的。

6、来看一下,本地创建3种Echarts导入的例子,下面是那3个示例文件的源码(官网Demo粗略修改而成):

(1)、标签式单文件引入.html:

ECharts

//基于准备好的dom,初始化echarts图表

varmyChart =echarts.init(document.getElementById('main'));

varoption ={

tooltip: {

show: true},

legend: {

data:['销量']

},

xAxis : [

{

type : 'category',

data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]

}

],

yAxis : [

{

type : 'value'}

],

series : [

{

"name":"销量",

"type":"bar",

"data":[5, 20, 40, 10, 10, 20]

}

]

};

//为echarts对象加载数据

myChart.setOption(option);

需要注意的是,可以直接引入的单文件只有:

echarts-plain.js : 经过压缩,包含除地图外的全部图表

echarts-plain-original.js : 未压缩,可用于调试,包含除地图外的全部图表

echarts-plain-map.js : 经过压缩,全图表,包含world,china以及34个省市级地图数据

echarts-plain-original-map.js : 未压缩,可用于调试,全图表,包含world,china以及34个省市级地图数据

而除了这些带“plain”字眼的库,其他库都是含echarts这个变量的。导入其他库,会出现问题:echarts未定义。

(2)、模块化包引入.html,这个就需要用到2个src文件。

ECharts

//为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需的图表路径

require.config({

packages: [

{

name: 'echarts',

location: 'js/src',

main: 'echarts'},

{

name: 'zrender',

location: 'js/zrender/src',

main: 'zrender'}

]

});

//使用

require(

[

],

function(ec) {

//基于准备好的dom,初始化echarts图表

varmyChart =ec.init(document.getElementById('main'));

varoption ={

tooltip: {

show: true},

legend: {

data:['销量']

},

xAxis : [

{

type : 'category',

data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]

}

],

yAxis : [

{

type : 'value'}

],

series : [

{

"name":"销量",

"type":"bar",

"data":[5, 20, 40, 10, 10, 20]

}

]

};

//为echarts对象加载数据

myChart.setOption(option);

}

);

(3)、模块化单文件引入.html

ECharts

//为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需的图表路径

require.config({

paths:{

'echarts': './js/echarts',

'echarts/chart/bar': './js/echarts'}

});

//使用

require(

[

'echarts',

'echarts/chart/bar' //使用柱状图就加载bar模块,按需加载

],

function(ec) {

//基于准备好的dom,初始化echarts图表

varmyChart =ec.init(document.getElementById('main'));

varoption ={

tooltip: {

show: true},

legend: {

data:['销量']

},

xAxis : [

{

type : 'category',

data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]

}

],

yAxis : [

{

type : 'value'}

],

series : [

{

"name":"销量",

"type":"bar",

"data":[5, 20, 40, 10, 10, 20]

}

]

};

//为echarts对象加载数据

myChart.setOption(option);

}

);

2、如果上面的还有不明白的,参考一下我的本地目录:

js中有如下的文件:

其中,src是echarts-2.0.4文件夹下的src文件夹,zrender里面也有一个src文件夹,是zrender-2.0.4文件夹下面的src文件夹。

最后吐槽一句:Echarts的这个文档做的真是太粗略了,实在是朦朦胧胧,含糊不清。跟Highcharts之类的比起来差远了。想要详细了解各种特性,多看实例吧。。。

附上文实例下载链接:戳这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值