Echarts实例

Echarts数据可视化

效果图(前段框架为:EasyUI):





一、饼图

(1)服务端传输到前段的数据格式为List<Map>,数据如下

[
	{name: "儿童食品", y: 4540.5}, 
	{name: "调味品", y: 1266}, 
	{name: "水果", y: 2200}
]


(2)Html代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>销售额统计</title>
    <link rel="stylesheet" type="text/css" href="ui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="ui/themes/icon.css">
    <script type="text/javascript" src="ui/jquery.min.js"></script>
    <script type="text/javascript" src="ui/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="ui/locale/easyui-lang-zh_CN.js"></script>
    <script type="text/javascript" src="ui/jquery.serializejson.min.js"></script>
    <script type="text/javascript" src="ui/echarts.js"></script>
    <script type="text/javascript" src="js/report.js"></script>
</head>
<body class="easyui-layout">
<div data-options="region:'center',title:'销售统计表'" style="padding:4px;background-color:#eee">
    <form id="searchForm">
        开始日期:<input name="startDate" class="easyui-datebox">
        截止日期:<input name="endDate" class="easyui-datebox">
        <button type="button" id="btnSearch">查询</button>
    </form>
    <div style="height: 2px"></div>
    <table id="grid"></table>
</div>
<div data-options="region:'east',title:'销售统计图',split:true" style="width:900px;">
    <div id="charts" style="min-width: 450px; height: 500px; max-width: 800px; margin: 20px auto"></div>
</div>
</body>
</html>


(3)js代码

$(function () {
    $('#grid').datagrid({
        url: 'report_ordersReport',
        columns: [[
            {field: 'name', title: '商品类型', width: 300},
            {field: 'y', title: '销售额', width: 300},
        ]],
        singleSelect: true,
        onLoadSuccess:function (data) {
            // alert(JSON.stringify(data.rows));
            showChart(data.rows);
        }
    });

    //点击查询按钮
    $('#btnSearch').bind('click', function () {
        //把表单数据转换成json对象
        var formData = $('#searchForm').serializeJSON();
        if (formData.endDate != '') {
            formData.endDate += '23:59:59';
        }

        $('#grid').datagrid('load', formData);
    });
});

function showChart(data) {
        var myChart = echarts.init(document.getElementById("charts"));
        //生成图表数据
        myChart.setOption({
            //标题属性
            title : {
                text: '销售统计图',
                x:'center'
            },
            //提示框属性
            tooltip : {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            //保存图片到本地
            toolbox: {
                feature: {
                    dataView : {show: true, readOnly: false},
                    saveAsImage: {}
                },
                right:50,
                top:50
            },
            //图例属性
            legend: {
                orient: 'vertical',
                // 图例距离左方距离
                left: 50,
                // 图例距离上方距离
                top: 50,
                //设置图例值
                data: (function(){
                    var res = [];
                    for(var i=0;i<data.length;i++){
                        res.push(data[i].name);
                    }
                    return res;
                })()
            },
            //数据
            series : [
                {
                    name: '商品类型',
                    type: 'pie',
                    radius : '55%',
                    center: ['50%', '60%'],
                    //单击时,弹出该商品类型区域
                    selectedMode: 'single',
                    //显示的提示框
                    label: {
                        normal: {
                            formatter: '{a|{a}}{abg|}\n{hr|}\n  {b|{b}:}{c}  {per|{d}%}  ',
                            backgroundColor: '#eee',
                            borderColor: '#aaa',
                            borderWidth: 1,
                            borderRadius: 4,
                            // shadowBlur:3,
                            // shadowOffsetX: 2,
                            // shadowOffsetY: 2,
                            // shadowColor: '#999',
                            // padding: [0, 7],
                            rich: {
                                a: {
                                    color: '#999',
                                    lineHeight: 22,
                                    align: 'center'
                                },
                                hr: {
                                    borderColor: '#aaa',
                                    width: '100%',
                                    borderWidth: 0.5,
                                    height: 0
                                },
                                b: {
                                    fontSize: 16,
                                    lineHeight: 33
                                },
                                per: {
                                    color: '#eee',
                                    backgroundColor: '#334455',
                                    padding: [2, 4],
                                    borderRadius: 2
                                }
                            }
                        }
                    },
                    // 设置数据
                    data:function(){
                        var res = [];
                        for(var i=0;i<data.length;i++){
                            res.push({
                                name:data[i].name,
                                value:data[i].y
                            });
                        }
                        return res;
                    }()

                },
            ],itemStyle: {
                emphasis: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        });

}



二、折线图

(1)服务端传输到前段的数据格式为List<Map>,数据如下

[
	{"name":"1月","y":0},
	{"name":"2月","y":0},
	{"name":"3月","y":0},
	{"name":"4月","y":0},
	{"name":"5月","y":0},
	{"name":"6月","y":8006.5},
	{"name":"7月","y":0},
	{"name":"8月","y":0},
	{"name":"9月","y":0},
	{"name":"10月","y":0},
	{"name":"11月","y":0}
	,{"name":"12月","y":0}
]


(2)Html代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>销售趋势表</title>
    <link rel="stylesheet" type="text/css" href="ui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="ui/themes/icon.css">
    <script type="text/javascript" src="ui/jquery.min.js"></script>
    <script type="text/javascript" src="ui/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="ui/locale/easyui-lang-zh_CN.js"></script>
    <script type="text/javascript" src="ui/jquery.serializejson.min.js"></script>
    <script type="text/javascript" src="ui/echarts.js"></script>
    <script type="text/javascript" src="js/report_trend.js"></script>
</head>
<body class="easyui-layout">
<div data-options="region:'center',title:'销售统计表'" style="padding:4px;background-color:#eee">
    <form id="searchForm">
        选择年份:<input name="year" type="text">
        <button type="button" id="btnSearch">查询</button>
    </form>
    <div style="height: 2px"></div>
    <table id="grid"></table>
</div>
<div data-options="region:'east',title:'销售统计图',split:true" style="width:1200px;">
    <div id="charts" style="min-width: 450px; height: 500px; max-width: 1200px; margin: 20px auto"></div>
</div>
</body>
</html>

(3)js代码

$(function () {
    $('#grid').datagrid({
        url: 'report_trendReport',
        columns: [[
            {field: 'name', title: '月份', width: 200},
            {field: 'y', title: '销售额', width: 200},
        ]],
        singleSelect: true,
        onLoadSuccess:function (data) {
            //alert(JSON.stringify(data.rows));
            showChart(data.rows);
        }
    });

    //点击查询按钮
    $('#btnSearch').bind('click', function () {
        //把表单数据转换成json对象
        var formData = $('#searchForm').serializeJSON();
        $('#grid').datagrid('load', formData);
    });

});

function showChart(data) {
    var myChart = echarts.init(document.getElementById("charts"));
    //生成图表数据
    myChart.setOption({
        //标题属性
        title : {
            text: '销售趋势分析',
            x:'center'
        },
        tooltip : {
            trigger: 'axis',
            axisPointer: {
                type: 'cross',
                label: {
                    backgroundColor: '#6a7985'
                }
            }
        },
        toolbox: {
            feature: {
                dataView : {show: true, readOnly: false},
                magicType : {show: true, type: ['line', 'bar']},
                restore : {show: true},
                saveAsImage: {}
            },
            right:50,
        },
        xAxis: {
            type: 'category',
            data: (function () {
                var res = [];
                for(var i=0;i<data.length;i++) {
                    res.push(data[i].name);
                }
                return res;
            })()
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
            data: function () {
                var res = [];
                for(var i=0;i<data.length;i++) {
                    res.push(data[i].y);
                }
                return res;
            }(),
            type: 'line',
            label: {
                normal: {
                    position: 'top',
                    show: true
                }
            },
        }]
    });

}




  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值