• 使用Echarts+Ajax制作动态统计图表


    1.使用Echats有两个比较方便的网站

    1.https://echarts.baidu.com/echarts2/doc/example.html    (统计图的样式)

    2.https://echarts.baidu.com/builder.html                               (在线js定制生成)

    2.引入ECharts

    直接在官网下载所需ECharts文件,或者去上面定制生成js文件然后像引入普通JavaScript库一样用script标签引入即可。代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>ECharts入门</title>
    </head>
    <body>
       <!-- 引入ECharts文件 -->
        <script src='echarts.min.js'></script>
    </body>
    </html>

    3.制作统计图(列举一个饼图和柱图)

     <!-- 查看饼状图 -->
    <div id="main" style=" 600px;height:400px;"></div>                     
    <!-- 查看柱状图 -->
    <div id="main2" style=" 600px;height:400px;"></div>
    

    4.初始化,指定图表配置和使用Ajax动态绑定数据

    后台写方法查询数据是返回json格式,前台使用ajax调用解析,然后填充数据到Echaets里面就可以了

    //饼状图绑定数据   
    <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); $.ajax({ url: "../../wxInterface/yqwxRepair.asmx/WXTJ", //后台方法路径(返回json格式) type: "POST", async: false, dataType: "json", data: "", contentType: "application/json", cache: false, timeout: 30000, success: function (json) { json = eval("(" + json.d + ")"); //对后台json解析,根据返回的格式不同自行修改 var data = json.data; if (json) {
    var servicedata = []; for (var i = 0; i < data.length; i++) { var obj = new Object(); obj.name = data[i].YQMC; //循环取你想要显示的名称,对应数据库字段 obj.value = data[i].CiShu; //循环取你想要显示的值
    servicedata[i] = obj; //待会要填充的数据(包含名称和值) } myChart.setOption({ title: { text: '仪器维修次数', subtext: '饼图', x: 'center' }, tooltip: { trigger: 'item', formatter: "{b} <br/>{c} : {d} %" //a 系列名称,b 数据项名称,c 数值,d 百分比 }, legend: { orient: 'vertical', x: 'left', data: data.YQMC //绑定名称 }, 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: servicedata //填充数据 } ] }) } }, error: function (errorMsg) { //请求失败时执行该函数 alert("图表请求数据失败!"); myChart.hideLoading(); } }); </script>
    //柱状图 <script type="text/javascript"> var myChart2 = echarts.init(document.getElementById('main2')); // 显示标题,图例和空的坐标轴 myChart2.setOption({ title: { text: '仪器维修次数' }, tooltip: {}, legend: { data: ['仪器'] }, xAxis: { data: [] }, yAxis: {}, series: [{ name: '仪器', type: 'bar', data: [] }] }); var names = []; //类别数组(实际用来盛放X轴坐标值) var nums = []; //销量数组(实际用来盛放Y坐标值) $.ajax({ url: "../../wxInterface/yqwxRepair.asmx/WXTJ", type: "POST", async: false, dataType: "json", data: "", contentType: "application/json", cache: false, timeout: 30000, success: function (json) { json = eval("(" + json.d + ")"); var Data = json.data; if (json) { for (var i = 0; i < Data.length; i++) { names.push(Data[i].YQMC); //挨个取出类别并填入类别数组 } for (var i = 0; i < Data.length; i++) { nums.push(Data[i].CiShu); //挨个取出销量并填入销量数组 } myChart2.setOption({ //加载数据图表 xAxis: { data: names }, series: [{ // 根据名字对应到相应的系列 name: '仪器', data: nums }] }); } }, error: function (errorMsg) { //请求失败时执行该函数 alert("图表请求数据失败!"); myChart2.hideLoading(); } }); </script>
  • 相关阅读:
    pandas 读取excle ,迭代
    prettytable模块(格式化打印内容)
    Python开发丨这些面试题会不会难倒你
    python开发最受欢迎的十款工具
    语言组成
    运算符优先级
    Python 位运算符 逻辑运算符 成员运算符
    **算术运算符
    **Python数据类型转换
    字符串-数字-列表(转换)
  • 原文地址:https://www.cnblogs.com/xqfk/p/11168854.html
Copyright © 2020-2023  润新知