瀑布图
Apache ECharts 中没有瀑布图系列,但我们可以使用堆叠柱状图模拟效果。
假设数据数组中的值表示与前一个值相比的增量或减量。
var data = [900, 345, 393, -108, -154, 135, 178, 286, -119, -361, -203];
也就是说,第一个数据是 900
,第二个数据 345
表示在 900
的基础上增加了 345
,以此类推。当以阶梯瀑布图的形式展示这些数据时,我们可以使用三个系列:第一个是一个非交互的透明系列,用于实现悬浮柱效果,第二个系列用于表示正数,第三个系列用于表示负数。
var data = [900, 345, 393, -108, -154, 135, 178, 286, -119, -361, -203]; var help = []; var positive = []; var negative = []; for (var i = 0, sum = 0; i < data.length; ++i) { if (data[i] >= 0) { positive.push(data[i]); negative.push('-'); } else { positive.push('-'); negative.push(-data[i]); } if (i === 0) { help.push(0); } else { sum += data[i - 1]; if (data[i] < 0) { help.push(sum + data[i]); } else { help.push(sum); } } } option = { title: { text: 'Waterfall' }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'category', splitLine: { show: false }, data: (function() { var list = []; for (var i = 1; i <= 11; i++) { list.push('Oct/' + i); } return list; })() }, yAxis: { type: 'value' }, series: [ { type: 'bar', stack: 'all', 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: help }, { name: 'positive', type: 'bar', stack: 'all', data: positive }, { name: 'negative', type: 'bar', stack: 'all', data: negative, itemStyle: { color: '#f33' } } ] };
在线