/**
* 图形渲染之前对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;
}
JS脚本自定义瀑布图
最新推荐文章于 2023-06-30 11:34:39 发布