JS脚本自定义瀑布图

/**
 * 图形渲染之前对option的再次修改
 **/
this.beforeRender = function(option){
    //此处自行处理option的配置 TODO
option.grid[0].top='20%';
  option.legend[0].data[0]=['支出', '收入'];
var data_value = option.series[0].data;
var data1_value = [];
var data2_value = [];
var data3_value = [];
var value0 = 0;
  
for(var i = 0; i < data_value.length; i++){
    if (i == 0){
        if (data_value[i] < 0){ //判断条件,满足条件使用 di_symbol 对应的图标,否则使用option.series[N].symbol对应的图标
            
            data1_value.push(value0);
            data2_value.push('-');
            data3_value.push({value: Math.abs(data_value[i]),itemStyle: {color: 'rgb(253, 142, 93)'},});
        } else {
            
            data1_value.push(value0);
            data2_value.push({value: data_value[i],itemStyle: {color: 'rgb(253, 142, 93)'},});
            data3_value.push('-');
        }
    } else if (i == 1){
        if (data_value[i] < 0){ //判断条件,满足条件使用 di_symbol 对应的图标,否则使用option.series[N].symbol对应的图标
            value0 = value0+data_value[i-1]-Math.abs(data_value[i]);
            data1_value.push(value0);
            data2_value.push('-');
            data3_value.push(Math.abs(data_value[i]));
        } else {
            value0 += data_value[i];
            data1_value.push(value0);
            data2_value.push(data_value[i]);
            data3_value.push('-');
        }
    } else if (i == data_value.length-1){
        if (data_value[i] < 0){ 
            value0 = 0;
              data1_value.push(value0);
            data2_value.push('-');
            data3_value.push({value: data_value[i],itemStyle: {color: 'rgb(253, 142, 93)'},});
        } else {
            value0 = 0;
              data1_value.push(value0);
            data2_value.push({value: data_value[i],itemStyle: {color: 'rgb(253, 142, 93)'},});
            data3_value.push('-');
        }
    } else {
        if (data_value[i] < 0){ //判断条件,满足条件使用 di_symbol 对应的图标,否则使用option.series[N].symbol对应的图标
            value0 = value0-Math.abs(data_value[i]);
            data1_value.push(value0);
            data2_value.push('-');
            data3_value.push(Math.abs(data_value[i]));
        } else {
            value0 += data_value[i];
            data1_value.push(value0);
            data2_value.push(data_value[i]);
            data3_value.push('-');
        }
    }
};
  option.series= [{
                        name: ' ',
                        type: 'bar',
                        stack: '总量',
                        itemStyle: {
                            normal: {
                                barBorderColor: 'rgba(0,0,0,0)',
                                color: 'rgba(0,0,0,0)'
                            },
                            emphasis: {
                                barBorderColor: 'rgba(0,0,0,0)',
                                color: 'rgba(0,0,0,0)'
                            }
                        },
                        data: data1_value
                    },
                    {
                        name: '收入',
                        type: 'bar',
                        stack: '总量',
                        label: {
                            normal: {
                                show: true,
                                position: 'top'
                            }
                        },
                        data: data2_value
                    },
                    {
                        name: '支出',
                        type: 'bar',
                        stack: '总量',
                        label: {
                            normal: {
                                show: true,
                                position: 'top'
                            }
                        },
                        data: data3_value
                    }
                ];
  debugger
    return option;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值