第一个ECharts图表

ECharts是由百度团队开发的,可高度个性化定制的数据可视化图表库。它的底层依赖轻量级的Canvas类库ZRender,是一个纯JavaScript的图标库,兼容(IE8/9/10/11,Chrome,Firefox,Safari等)主流浏览器,可以运行在PC和移动设备上。

1.ECharts官网

http://echarts.baidu.com/index.html
这里写图片描述
随便点击一个图表
这里写图片描述
通过”实例“可以看出来,官网上有很多可以供数据显示的图表类型,并帮助我们生成好了大部分数据。
此次以折线图为例做一个展示。

2.echarts.js文件

下载路径:http://echarts.baidu.com/download.html
这里写图片描述
点击想要下载的类型后会自动下载,此次做为开发,我用的是源代码。
把下好的js文件放到项目中
这里写图片描述

3.后台数据返回

这里写图片描述
在controller层里,我返回了六个List<String>用于数据显示

4.前端

1.在html页面中引用echart.js文件
这里写图片描述
2.在body中准备一个div用于接收折线图

<div id="sell_data" style="height:400px"></div>

3.js文件

//订单统计折线图
$(function() {

    var toPayList;
    var toconfirm;
    var done;
    var payexpired;
    var refunded;
    var datetime;

    $.ajax({
        type:"post",
        url:prefix+"/chart",
        async:false,
        success:function(d){
            //获得后台数据
            toPayList=d.toPayList
            datetime=d.datetime
            toconfirm=d.toconfirm
            done=d.done
            payexpired=d.payexpired
            refunded=d.refunded
        }
    });

    var option = {
        title: {
            text: '折线图堆叠'
        },
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            data: ['待支付', '待确认', '已完成', '已过期', '已退款']//线名
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        },
        toolbox: {
            feature: {
                saveAsImage: {}
            }
        },
        xAxis: {
            type: 'category',
            boundaryGap: false,
            data:datetime
        },
        yAxis: {
            type: 'value'
        },
        series: [{
                name: '待支付',
                type: 'line',
                stack: '总量',
                data: toPayList
            },
            {
                name: '待确认',
                type: 'line',
                stack: '总量',
                data: toconfirm
            },
            {
                name: '已完成',
                type: 'line',
                stack: '总量',
                data: done
            },
            {
                name: '已过期',
                type: 'line',
                stack: '总量',
                data: payexpired
            },
            {
                name: '已退款',
                type: 'line',
                stack: '总量',
                data: refunded
            }
        ]
    };
    var myChart = echarts.init(document.getElementById('sell_data'));

    myChart.setOption(option);

});

5.效果展示

这里写图片描述

6.错误检查

1.html中是否成功引用echarts.js文件,路径是否写对?
2.后台数据是否为json或者数组形式?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章