zoukankan      html  css  js  c++  java
  • ECharts学习总结(二)-----图表组件漏斗图(funnel)

    今天在学习ECharts时,想要在ECharts图表的原生态Demo中抠出漏斗图,却不知如何下手,经过一番研究,特总结如下:

    首先我们需要这样做

    1、拷贝出两个js文件:esl.js 和echarts.js 

    2、准备一个html页面进行图表容器配备和模块化加载js和创建图表

    1)、引入esl.js文件

    <script src="../js/echarts/esl.js" type="text/javascript"></script>

    之所以要引入esl.js 文件,因为它内部封装了很多模块化加载js文件和创建图表的回调函数方法。

    2)、准备图表的装载容器

    <div id="funnel_a" style="height: 400px;  800px; border: 1px solid #ccc; padding: 10px;"></div>

    3)、采用esl.js文件内的方法模块化加载漏斗图所需的库且在回调函数内创建漏斗图。

    // Step:3 conifg ECharts's path, link to echarts.js from current page.
        // Step:3 为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需图表路径
        require.config({
           /*  paths: {
                echarts: '../js/echarts',        //echarts.js所在的路径 
                'echarts/chart/funnel': '../js/echarts'
            } */
           packages:[{
             name:'echarts',
             location:'../js/echarts',
             main:'echarts'
             },{
             name:'zrender',
             location:'../js/zrender',//zrender与echarts在同一级目录
             main:'zrender'
            }
         ]
         });
        // Step:4 require echarts and use it in the callback.
        // Step:4 动态加载echarts然后在回调函数中开始使用,注意保持按需加载结构定义图表路径
        require(
            [
                'echarts',
                'echarts/chart/bar',
                'echarts/chart/map',
                'echarts/chart/funnel'
            ],
            function (ec) {//渲染ECharts图表  ,可单独写出来作为回调函数
                // --- 中国地图 ----------------------------------------------
                var myChart1 = ec.init(document.getElementById('funnel_a'));
                //加载图表
                option = {
                title : {
                    text: '漏斗图',
                    subtext: '纯属虚构'
                },
                tooltip : {
                    trigger: 'item',
                    formatter: "{a} <br/>{b} : {c}%"
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        restore : {show: true},
                        saveAsImage : {show: true}
                    }
                },
                legend: {
                    data : ['展现','点击','访问','咨询','订单']
                },
                calculable : true,
                series : [
                    {
                        name:'漏斗图',
                        type:'funnel',
                         '40%',
                        data:[
                            {value:60, name:'访问'},
                            {value:40, name:'咨询'},
                            {value:20, name:'订单'},
                            {value:80, name:'点击'},
                            {value:100, name:'展现'}
                        ]
                    },
                    {
                        name:'金字塔',
                        type:'funnel',
                        x : '50%',
                        sort : 'ascending',
                        itemStyle: {
                            normal: {
                                // color: 各异,
                                label: {
                                    position: 'left'
                                }
                            }
                        },
                        data:[
                            {value:60, name:'访问'},
                            {value:40, name:'咨询'},
                            {value:20, name:'订单'},
                            {value:80, name:'点击'},
                            {value:100, name:'展现'}
                        ]
                    }
                ]
            };
            myChart1.setOption(option);            
            }
         );

    type一定要是funnel,且require.config内必须要加载funnel相关的库,否则漏斗图将展示不出来的。

    这样完美的漏斗图就此展现出来了,上张美图吧!

    注意:如此图没有出现,则可能引入的包有问题,需要检查,再者zrender包在某种情况下最好引入,为避免不必要的麻烦也是必不可少的。

    ECharts图表组件入门教程之漏斗图(funnel):如何快速构建漏斗图采用模块化加载方式

    完整示例代码:

    <!DOCTYPE html>
    <html>
      <head>
        <title>ECharts-如何快速构建漏斗图示例-STEP DAY</title>
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="this is my page">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
        <script src="../js/echarts/esl.js" type="text/javascript"></script>
      </head>
      <body>
          <div id="funnel_a" style="height: 400px;  800px; border: 1px solid #ccc; padding: 10px;">
        </div>
        <script type="text/javascript">
        // Step:3 conifg ECharts's path, link to echarts.js from current page.
        // Step:3 为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需图表路径
        require.config({
           /*  paths: {
                echarts: '../js/echarts',        //echarts.js所在的路径 
                'echarts/chart/funnel': '../js/echarts'
            } */
           packages:[{
             name:'echarts',
             location:'../js/echarts',
             main:'echarts'
             },{
             name:'zrender',
             location:'../js/zrender',//zrender与echarts在同一级目录
             main:'zrender'
            }
         ]
         });
        // Step:4 require echarts and use it in the callback.
        // Step:4 动态加载echarts然后在回调函数中开始使用,注意保持按需加载结构定义图表路径
        require(
            [
                'echarts',
                'echarts/chart/bar',
                'echarts/chart/map',
                'echarts/chart/funnel'
            ],
            function (ec) {//渲染ECharts图表  ,可单独写出来作为回调函数
                var myChart1 = ec.init(document.getElementById('funnel_a'));
                //加载图表
                option = {
                title : {
                    text: '漏斗图',
                    subtext: '纯属虚构'
                },
                tooltip : {
                    trigger: 'item',
                    formatter: "{a} <br/>{b} : {c}%"
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        restore : {show: true},
                        saveAsImage : {show: true}
                    }
                },
                legend: {
                    data : ['展现','点击','访问','咨询','订单']
                },
                calculable : true,
                series : [
                    {
                        name:'漏斗图',
                        type:'funnel',
                         '40%',
                        data:[
                            {value:60, name:'访问'},
                            {value:40, name:'咨询'},
                            {value:20, name:'订单'},
                            {value:80, name:'点击'},
                            {value:100, name:'展现'}
                        ]
                    },
                    {
                        name:'金字塔',
                        type:'funnel',
                        x : '50%',
                        sort : 'ascending',
                        itemStyle: {
                            normal: {
                                // color: 各异,
                                label: {
                                    position: 'left'
                                }
                            }
                        },
                        data:[
                            {value:60, name:'访问'},
                            {value:40, name:'咨询'},
                            {value:20, name:'订单'},
                            {value:80, name:'点击'},
                            {value:100, name:'展现'}
                        ]
                    }
                ]
            };
            myChart1.setOption(option);            
            }
         );
        </script>
      </body>
    </html>
  • 相关阅读:
    MUI识别移动设备系统(主要用于区分苹果还是安卓)
    根据经纬度实现地图定位
    高德地图根据经纬度获取地理位置
    RSA加密解密
    .bat批处理启动redis
    Python 爬取 42 年高考数据,告诉你高考为什么这么难?
    作为软件测试的前辈你能不能给迷茫中的我一点建议?
    十分钟快速搭建Python+Selenium自动化测试环境(含视频教程)
    万事开头难!软件测试基础知识大全(新手入门必备)
    Dynamics CRM
  • 原文地址:https://www.cnblogs.com/whsa/p/4361206.html
Copyright © 2011-2022 走看看