• 百度图表数据插件echarts的初试


       身为一个小前端,当得知需要在页面根据后台数据绘制统计数据的图表时,一筹莫展,幸好遇见了百度的ECharts插件,这款插件容易入手:

       一下为初试:

    prepare.js//稍微封装,易于复用

    /*
    *function getJson()
    *为获取后台的数据json
    *json.data为报表数据对应横轴的值
    *json.name为报表横坐标的名称
    */
      function getJson(){
         var jsondata = {};
             jsondata.legendName = [];  //图表的表面
             jsondata.type = 'line';  //设置其为折线图'line',还是条形图'bar'
             jsondata.data = [];   //设置对应横轴的值
             jsondata.name = [];   //设置横轴的名称
             jsondata.color = [];  //设置柱形图颜色
             jsondata.trigger = '';  //设置拥有对应横轴的辅助线 axis,一般折线图会用到
    
         return jsondata;
      }
    
    /*
    *function setOptionData(json)
    *设置报表的option样式
    *参数json为设置样式和数据
    *json.data为报表数据对应横轴的值
    *json.name为报表横坐标的名称
    *返回值:option
    */
    
    function setOptionData(json){
         
        var option = {
                color : json.color,
                tooltip: {
                    show: true,
                    trigger: json.trigger
                },
                legend: {
                    data:json.legendName
                },
                xAxis : [
                    {
                        type : 'category',
                        data : json.name
                    }
                ],
                yAxis : [
                    {
                        type : 'value'
                    }
                ],
                series : [
                    {
                        "name":json.legendName,
                        "type":json.type,
                        "data":json.data
                    }
                ]
        };
    
      return option;
    }

    下面为两种不同的引入使用:

      一种为模块化:

        

    <!DOCTYPE html>
    <html lang="zh-CN">
       <head>
             <meta charset="utf-8">
             <title>使用prepare.js</title>
             <script src="http://s1.bdstatic.com/r/www/cache/ecom/esl/1-6-10/esl.js"></script> 
             <script src="prepare.js"></script>
       </head>
       <style>
           #draw{
                 width: 80%;
                 height: 400px;
                 margin:0 auto;
           }
       </style>
       <body>
              <p>已下为报表</p>
              <div id="draw">
              </div>
       </body>
       <script>
             // 路径配置
            require.config({
                paths:{ 
                    // 'echarts' : 'http://echarts.baidu.com/build/echarts',
                    // 'echarts/chart/bar' : 'http://echarts.baidu.com/build/echarts'
                    'echarts': 'echarts-2.0.3/build/echarts',
                    'echarts/chart/bar':'echarts-2.0.3/build/echarts.js'
                }
            });
    
          require(
            [
                'echarts',
                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
            ],
            function(ec){
    
                var mydraw = {};
                    mydraw.obj = document.getElementById("draw");
                    mydraw.json = getJson();
                    ////因为没有从后台获取统计的数据,所以在此初始化
            
                    mydraw.json.legendName = ['浏览量'];
                    mydraw.json.trigger = 'axis';
                    mydraw.json.type = 'line';
                    mydraw.json.color = ['#e2e2e2'];
                    mydraw.json.data = [10,15,40,70,20,10,80,99,11,31,12,42];
                    mydraw.json.name = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];
                    ////
                    mydraw.option = setOptionData(mydraw.json);
    
                 //   drawEchart(mydraw);
                  var myChart = ec.init(mydraw.obj);
                      myChart.setOption(mydraw.option); 
                
           });
       </script>
    </html>

      另一种为非模块导入:

      

    <!DOCTYPE html>
    <html lang="zh-CN">
       <head>
             <meta charset="utf-8">
             <title>使用prepare.js</title>
          <script src="echarts-2.0.3/build/echarts-plain.js"></script>
             <script src="prepare.js"></script>
       </head>
       <style>
           #draw{
                 width: 80%;
                 height: 400px;
                 margin:0 auto;
           }
       </style>
       <body>
              <p>已下为报表</p>
              <div id="draw">
              </div>
       </body>
       <script>
              window.onload = function(){
    
                var mydraw = {};
                    mydraw.obj = document.getElementById("draw");
                    mydraw.json = getJson();
                    
            
                    mydraw.json.legendName = ['浏览量'];
                  mydraw.json.trigger = 'axis';
                    mydraw.json.type = 'line';
                  mydraw.json.color = ['#e2e2e2'];
                    mydraw.json.data = [10,15,40,70,20,10,80,99,11,31,12,42];
                    mydraw.json.name = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];
                    ////
                    mydraw.option = setOptionData(mydraw.json);
    
                    var myChart = echarts.init(mydraw.obj);
                      myChart.setOption(mydraw.option); 
                    }
       </script>
    </html>

  • 相关阅读:
    将字符串数组转换成整形数组
    层的三级联动
    sql
    工作中的感悟
    asp.net如何抓取其他网站的内容
    看不到的SQl
    对数据库中时间为空的处理和数据转换成百分数
    不带查询条件的分页
    svn中出现红色感叹号
    视图的创建(根据已有的表)
  • 原文地址:https://www.cnblogs.com/hanbingljw/p/3991246.html
Copyright © 2020-2023  润新知