zoukankan      html  css  js  c++  java
  • Echarts 获取后台数据 使用后台数据展示 饼装图

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    <title>ECharts</title>
    </head>

    <body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="height:400px"></div>
    <div id="main2" style="height:400px"></div>
    <script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    });

    // 路径配置
    require.config({
    paths: {
    echarts: 'http://echarts.baidu.com/build/dist'
    }
    });
    // 使用
    require(
    [
    'echarts',
    'echarts/chart/pie' // 使用柱状图就加载bar模块,按需加载
    ],
    function (ec) {
    // 基于准备好的dom,初始化echarts图表
    var myChart = ec.init(document.getElementById('main'));
    var option = {
    title : {
    text: '某站点用户访问来源',
    subtext: '纯属虚构',
    x:'center'
    },
    tooltip : {
    trigger: 'item',
    formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
    orient : 'vertical',
    x : 'left',
    data:(function(){
    var arr=[];
    $.ajax({
    type : "post",
    async : false, //同步执行
    url : "<%=basePath%>getUserJson",
    data : {},
    dataType : "json", //返回数据形式为json
    success : function(result) {
    if (result) {
    for(var i=0;i<result.length;i++){
    arr.push(result[i].userName);
    }
    }

    },
    error : function(errorMsg) {
    alert("获取图表请求数据失败!");
    myChart.hideLoading();
    }
    })
    console.log("arr:"+arr);
    return arr;
    })()
    },
    toolbox: {
    show : true,
    feature : {
    mark : {show: true},
    dataView : {show: true, readOnly: false},
    magicType : {
    show: true,
    type: ['pie', 'funnel'],
    option: {
    funnel: {
    x: '25%',
    '50%',
    funnelAlign: 'left',
    max: 1548
    }
    }
    },
    restore : {show: true},
    saveAsImage : {show: true}
    }
    },
    calculable : true,
    series : [
    {
    name:'访问来源',
    type:'pie',
    radius : '55%',
    center: ['50%', '60%'],
    data:(function(){
    var arr=[];
    $.ajax({
    type : "post",
    async : false, //同步执行
    url : "<%=basePath%>getUserJson",
    data : {},
    dataType : "json", //返回数据形式为json
    success : function(result) {
    if (result){
    var selfme=null;
    for(var i=0;i<result.length;i++){
    selfme={value:result[i].age,name:result[i].userName}  
    arr.push(selfme);
    // arr.push("{value:"+result[i].age+",name:'"+result[i].userName+"'}");
    }
    }
    },
    error : function(errorMsg) {
    alert("获取图表请求数据失败!");
    myChart.hideLoading();
    }
    })
    console.log("arrB:"+arr)
    return arr;
    })()
    }
    ]
    };
    // 为echarts对象加载数据
    myChart.setOption(option);
    }
    );

    </script>
    </body>

    =====================================================

     备注说明:

    data是构造的数组数据,所以直接将例子后面的[] 块去掉,换上自己的function函数,将该函数的值放在数组中

    第二个data存的也是数组,不过要数据的格式要符合echarts的标准,所以这里构造的是一个相同格式的对象

    js构造对象(直接通过 属性名/值来创建)

    eg:var o={name:'tom', age:22}

    所以在第二个data中直接{value:xx,name:xx}即可

    标注颜色的是重点,容易出错的地方!!!!!

    匿名函数必须(function(){})()

  • 相关阅读:
    mac 切换 默认xcode 版本
    mac 查看jenkins 管理员密码地址
    解决 mac ox 终端显示bogon 的问题
    eclipse 修改默认作者信息
    mac 查看 本地网络代理
    appium 解决 启动case 时不 重装 setting 和 unlock.apk的解决方案实践
    appium 输入时间慢的解决方案
    命令 关闭 appium 命令
    解决 appium could not start ios-webkit-debug-proxy
    PPT总结
  • 原文地址:https://www.cnblogs.com/austinspark-jessylu/p/6297561.html
Copyright © 2011-2022 走看看