echarts动态加载data

本文介绍了如何在Echarts中动态加载数据,特别是针对饼图的情况。通过JavaScript获取隐藏input中的值,利用split方法解析数据,然后构建Echarts饼图的data数组。示例代码展示了动态构建饼图系列数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一:在开发中,我们经常会遇到data中的value和name需要进行循环才能显示,那么下面来说一下实现的方法:

以饼图为例:

   [#if aa??]
  <input type="hidden" name="aa" id="aa" value="${aa!}"/>
    [/#if]
    [#if rrr??]
  <input type="hidden" name="rrr" id="rrr" value="${rrr!}"/>
    [/#if]
   <script type="text/javascript">
      
        // 路径配置
        require.config({
            paths: {
                echarts: 'http://echarts.baidu.com/build/dist'
            }
        });
        
        // 使用
        require(
            [
                'echarts',
                'echarts/chart/pie' // 使用柱状图就加载bar模块,按需加载
            ],
            function (ec) {
                // 基于准备好的dom,初始化echarts图表
                var myChart = ec.init(document.getElementById('main')); 
                
                var option = {
    title : {
        text: '',
        subtext: '',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        orient : 'vertical',
        x : 'left',
        data:['总资产','姓名']
    },
    toolbox: {
        show : false,
        feature : {
            mark : {show: false},
            dataView : {show: false, readOnly: false},
            magicType : {
                show: false, 
                type: ['pie', 'funnel'],
                option: {
                    funnel: {
                        x: '25%',
                        width: '50%',
                        funnelAlign: 'left',
                        max: 1548
                    }
                }
            },
            restore : {show: false},
            saveAsImage : {show: false}
        }
    },
    calculable : true,
    series : [{
               name:['姓名','总资产'],
               type:'pie',
               radius : '55%',
               center: ['50%', '60%'],
               data:function(){
            var res=[];
            var aa=$("#aa").val();
            var rrr=$("#rrr").val();
            var aa1=aa.split(",");
            var rrr1=rrr.split(",");
            for(var i=0;i<rrr1.length;i++){
            res.push({
            value:aa1[i],
            name:rrr1[i]
            });
            };
            return res;
            }()

    }
          ]
};
        
                // 为echarts对象加载数据 
                myChart.setOption(option); 
            }
        );
    </script>
  <h2>客户个人总资产:</h2>
    <div class="graph_box">
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="height:400px;"></div>
    </div>

参考图片:


第二:我们有可能会循环多个饼图,那么代码如下:

series :function(){
    
     alert("1");
     var serie=[];
     var aa = collgename;
     for( var i=0;i < aa.length;i++){
     var item={
     name:aa[i],
     data:dataArr[i]
     };
     serie.push(item);
     };
     return serie;
     }()


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值