游戏技术文章

史上最强大的js图表库——ECharts带你入门

时间:2017-1-23 10:55:03  作者:棋牌资源网  来源:棋牌资源网  查看:5782  评论:0
内容摘要: ECharts 底层依赖于 Html5 的轻量级的Canvas类库ZRender ,这也是它的效果这么绚丽的原因。它与 js charts类似,不依赖其他 js 类库,相比之下 Highcharts还要依赖JQuery等类库。不过,ECharts也不是什么缺点都没有的...
 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:  

 
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="height:400px"></div>
    <!-- ECharts单文件引入 -->
    <script src="js/echarts.js"></script>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts图表
        var myChart = echarts.init(document.getElementById('main')); 
        
        var option = {
            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); 
    </script>
</body>
 

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

  • 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文件。

 
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!--从当前页面,引入模块加载器esl.js-->
    <script src="js/esl.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="height:400px"></div>
    <script type="text/javascript">
        // 为模块加载器配置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图表
                var myChart = ec.init(document.getElementById('main')); 
                
                var option = {
                    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); 
            }
        );
    </script>
</body>
 

 

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

 
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!--从当前页面,引入模块加载器esl.js-->
    <script src="js/esl.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="height:400px"></div>
    <script type="text/javascript">
        // 为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需的图表路径
        require.config({
            paths:{ 
                'echarts' : './js/echarts',
                'echarts/chart/bar' : './js/echarts'
            }
        });
        
        // 使用
        require(
            [
                'echarts',
                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
            ],
            function (ec) {
                // 基于准备好的dom,初始化echarts图表
                var myChart = ec.init(document.getElementById('main')); 
                
                var option = {
                    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); 
            }
        );
    </script>
</body>
 

 

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

  史上最强大的js图表库——ECharts带你入门

  js中有如下的文件:

  史上最强大的js图表库——ECharts带你入门

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

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

标签:史上最强大的js图表库ECharts带你入门 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2024 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved