Echarts饼状图交互数据

value和name都是需要从后端获取,然后渲染在界面,大致的json数据是这样的:
模拟一个json格式的数据:

{"list":[{"value":"管理","name":40},
{"value":"炼钢工","name":30},
{"value":"焊工","name":36},
{"value":"操作工","name":31}]}

开始写ajax+json数据模拟一个demo,仅供参考,代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>饼状图数据交互</title>
        <!-- 引入 echarts.js -->
        <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
        <script src="https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts.min.js" type="text/javascript"></script>
    </head>
    <body>
        <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
        <div id="main" style="width: 400px;height:300px;"></div>
        <script type="text/javascript">         
            // 基于准备好的dom,初始化echarts实例
            var myChart = echarts.init(document.getElementById('main'));
            function hrFun(param) {
                myChart.setOption({
                    tooltip: {
                        trigger: 'item',
                        formatter: "{a} <br/>{b}: {c} ({d}%)"
                    },
                    legend: {
                       /* orient: 'vertical',
                        x: 'right',
                        y: 'bottom',
                        textStyle: { //图例文字的样式
                            color: '#0b2b5e',
                            fontSize: 12
                        },*/
                    },
                    series: [{
                        name: '访问来源',
                        type: 'pie',
                        radius: ['50%', '70%'],
                        avoidLabelOverlap: false,
                        data: [
                        ]
                    }]
                });
                myChart.showLoading(); //数据加载完之前先显示一段简单的loading动画
                var names = []; //类别数组(用于存放饼图的类别)
                var brower = [];
                $.ajax({
                    type: 'get',
                    url: 'data.json', //请求数据的地址
                    dataType: "json", //返回数据形式为json
                    success: function(result) {
                        //请求成功时执行该函数内容,result即为服务器返回的json对象
                        $.each(result.list, function(index, item) {
                            names.push(item.value); //挨个取出类别并填入类别数组 
                            brower.push({
                                name: item.value,
                                value: item.name
                            });
                        });
                        myChart.hideLoading(); //隐藏加载动画
                        myChart.setOption({ //加载数据图表                
                            legend: {
                                data: names
                            },
                            series: [{
                                data: brower
                            }]
                        });
                    },
                    error: function(errorMsg) {
                        //请求失败时执行该函数
                        alert("图表请求数据失败!");
                        myChart.hideLoading();
                    }
                });             
           }
            hrFun();
        </script>
    </body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值