echarts 饼状图实例

定义div区域存放饼状图

<div id="container" style=" width: 30%; height: 70%;float: left;"></div>

js中调用container生成饼状图

var myChart = echarts.init(document.getElementById('container'));

调用方法

copy(myChart,year);

传进去的字段根据需要

此处字段含义:myChart定义的饼状图,year:传到后台的条件,查出对应的数据

  

 //从数据库读取数据赋值给echarts饼状图
    function copy(myChart,year) {
        $.ajax({
            url : "${ctx}/_data/vr/sell/findByBreed",
            type : "post",
            data : {
                year:year
            },
            traditional : true, //这里设置为true,将自动生成的[]符号去除
            dataType : "json",
            success : function(data) {
                if (data.length == 0) {
                    var option = {
                        title : {
                            text : "当年销售分析图"
                        },
                        series : [ {
                            name : "品种",
                            type : 'pie',
                            radius : '60%',
                            data : [ {
                                value : 0,
                                name : '无'
                            }, ]
                        } ]
                    };
                    myChart.setOption(option);
                } else {
                    //创建一个数组,用来装对象传给series.data,因为series.data里面不能直接写for循环
                    var servicedata = [];
                    var type = [];
                    var sum = 0.00;
                    var price = [];
                    for (var i = 0; i < data.length; i++) {
                        var obj = new Object();
                        obj.name = data[i].name;
                        obj.value = data[i].count;
                        obj.avg = data[i].avg;
                        servicedata[i] = obj;
                        type[i] = data[i].name;
                        price[i] = data[i].avg.toFixed(4);
                        sum = sum + parseFloat(data[i].count);
                    }
                    for (var i = 0; i < servicedata.length; i++) {
                        if (servicedata[i].value == 0) {
                            servicedata.splice(i, 1);
                            i--;
                        }
                    }
                    myChart.setOption({
                        title : {
                            text : "当年销售分析图",
                            x : 'center'
                        },
                        tooltip : {
                            trigger : 'item',
//默认formatter : "{a} <br/>{b} : {c} ({d}%)"
                            formatter : function(param) {
                                var dataIndex = param.dataIndex;
                                var edit = "品种:" + "<br>";
                                edit += servicedata[dataIndex].name + ": " + servicedata[dataIndex].value + " 吨   " + "(" +
                                    parseFloat(servicedata[dataIndex].value / sum).toFixed(2) + "%" + ")" + "<br>"
                                    + servicedata[dataIndex].name + "均价: " + price[dataIndex] + " 元";
                                return edit;
                            }
                        },
                        color : [ '#6dd8da', '#b6a2de', '#58afed', '#F3D7B5', '#98FB98', '#FFA500',
                            '#E9967A', '#808080', '#F0E68C', '#DB7093', '#9ACD32' ],
                        legend : {
                            orient : 'vertical',
                            left : 'right',
                            data : type
                        },
                        series : [ {
                            name : "品种",
                            type : 'pie',
                            radius : '60%',
                            data : servicedata
                        } ]
                    });
                }
            }
        });
    }

查询条件需要判断一下mychart的状态,以便多个饼图用一个div的时候清空div数据

if (myChart != null && myChart != "" && myChart != undefined) {
            myChart.dispose();
        }

实例图:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值