// 带有预计的折线图,要实现的效果,鼠标悬浮在线上时,
// 实际有值,只显示实际值,预计有值,只显示预计值,两者重合的点,显示实际值
// 没有数据的用空代替,必须设置在某一个点数值重合,才能形成完整的曲线
var actal1 = [1, 2, 3, 4, '', '', ''];
var predict1 = ['', '', '', 4, 4, 4, 5];
var actal2 = [11, 12, 13, 14, '', '', ''];
var predict2 = ['', '', '', 14, 14, 14, 15];
option = {
title: {
text: '折线图堆叠'
},
tooltip: {
trigger: 'axis',
formatter: function(params) { //提示信息,为空时,不显示
var temp = params[0].name + "<br/>";
var sum = '';
for (var i = 0; i < params.length; i = i + 2) { //+2循环,0、1是一对;2、3是一对
var act = params[i].marker + params[i].seriesName + ":" + params[i].value + "元<br/>";
var pre = params[i + 1].marker + params[i + 1].seriesName + ":" + params[i + 1].value + "元<br/>";
if (params[i].value === "") { //当实际值为空时,只显示预计值
sum += pre; //相当于求和运算
}
if (params[i + 1].value === "" || params[i].value === params[i + 1].value) { //当预计值为空或在某一点两者重合时,只显示实际值
sum += act;
}
}
return temp + sum;
},
},
legend: {
data: ['实际1', '预计1', '实际2', '预计2']
},
grid: {
left: '20%',
right: '20%',
bottom: '40%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
type: 'value'
},
series: [{
name: '实际1',
type: 'line',
data: actal1
},
{
name: '预计1',
type: 'line',
data: predict1,
lineStyle: {
type: 'dashed',
}
},
{
name: '实际2',
type: 'line',
data: actal2
},
{
name: '预计2',
type: 'line',
data: predict2,
lineStyle: {
type: 'dashed',
}
},
]
};