单条显示就没有问题,但是一旦多个折线一起显示,其中两个折线相交的地方图形显示就出现了问题(前一个显示的折线(就叫“折线1”吧)数据没有问题,后一个显示的折线(“折线2”)数据出错,但是鼠标移上去后,具体的数据数字没问题,只是图形出现差错。折线1与折线2没有相交的地方数据和图形都正确呢!)
先看看错误的地方吧,折线1数据:(1,1,0,3,0,1) 折线2数据:(0,0,1,0,2,0)
单个显示时:折线1(就用颜色代替吧,看起来方便些)
折线2:
两个一起显示时:
可以发现折线1没有错误,折线2的没有相交的地方也没错,就是相交的地方出错了,
看看代码:
series : [
{ //系列列表
//name : ${schoolName},
name : '${schoolname1}',
type : 'line',
//设置折线图中表示每个坐标点的符号 emptycircle:空心圆;emptyrect:空心矩形;circle:实心圆;emptydiamond:菱形
//symbol : 'emptydiamond',
stack : '总量',
data : ${alarmNum1}
//data : [1,1,1,1,1,1]
},
{ //系列列表
//name : ${schoolName},
name : '${schoolname2}',
type : 'line',
symbol : 'emptyrect',
stack : '总量',
data : ${alarmNum2}
//data : [2,2,2,2,2,2]
}
],
说说解决办法吧:
最终查了好多资料,才发现是这句代码的错误:
stack : '总量',
stack属性-----数据堆叠:
stack-------数据堆叠,同个类目轴上(数轴上)系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加。
解决办法:
1.将stack属性去掉
显示为这样的(正确的):
2.为stack属性赋予不同的值。只要不让他们相交就行啦。
例如这样:
series : [
{ //系列列表
//name : ${schoolName},
name : '${schoolname1}',
type : 'line',
//设置折线图中表示每个坐标点的符号 emptycircle:空心圆;emptyrect:空心矩形;circle:实心圆;emptydiamond:菱形
//symbol : 'emptydiamond',
stack : '总量',
//data : ${alarmNum1}
data : [1,1,1,1,1,1]
},
{ //系列列表
//name : ${schoolName},
name : '${schoolname2}',
type : 'line',
symbol : 'emptyrect',
stack : '总量',
//data : ${alarmNum2}
data : [2,2,2,2,2,2]
}
],
stack没有去掉,给他们不同的值。(不让他们相交!!!)来看看效果吧:
搞定!!
附上折线图的代码吧:
<div id='lines' style="width: 50%; height: 300px; float:left "></div>
<script type="text/javascript">
//折线图start
var lines = echarts.init(document.getElementById('lines'));
//lines.showLoading(); //加载动画
linesSum = {
title : { //标题组件
text : '历史告警',
},
tooltip : { //提示框组件
trigger : 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'line' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend : { //图例组件
data : '${schoolnamelist}',
//selectedMode : 'single', //限制只显示一条数据(折线)
},
grid : { //直角坐标系内绘网格
left : '3%',
right : '4%',
bottom : '3%',
containLabel : true
},
toolbox : { //工具栏
feature : {
saveAsImage : {}
}
},
xAxis : [ { //直角坐标系grid中的X轴
type : 'category',
boundaryGap : false,
//data : [ '周一', '周二', '周三', '周四', '周五', '周六', '周日' ],${taskSituationDate2}
data : [ ${taskSituationDate}]
}/* ,
{ //直角坐标系grid中的X轴
type : 'category',
boundaryGap : false,
data : [ ${taskSituationDate2}]
} */],
yAxis : [ { //直角坐标系grid中的Y轴
//name : '${schoolname1}',
type : 'value',
//scale : true,
splitLine : {
show : true
},
position : 'left',
},
/* { //直角坐标系grid中的Y轴
name : '${schoolname2}',
type : 'value',
scale : true,
splitLine : {
show : true
},
position : 'right',
} */],
series : [
{ //系列列表
//name : ${schoolName},
name : '${schoolname1}',
type : 'line',
//设置折线图中表示每个坐标点的符号 emptycircle:空心圆;emptyrect:空心矩形;circle:实心圆;emptydiamond:菱形
//symbol : 'emptydiamond',
stack : '总量',
data : ${alarmNum1}
//data : [1,1,1,1,1,1]
},
{ //系列列表
//name : ${schoolName},
name : '${schoolname2}',
type : 'line',
symbol : 'emptyrect',
stack : '总量',
data : ${alarmNum2}
//data : [2,2,2,2,2,2]
}
],
};
lines.setOption(linesSum);
//折线图end
</script>
在介绍一个吧,虽然有多条折线,但是设置这个后,一次只能显示一条折线。selectedMode : 'single',
selectedMode : 'single', //限制只显示一条数据(折线)
在上面正确图中加上这个属性后:
一次只能显示一条折线~
附上部分代码:
legend : { //图例组件
data : '${schoolnamelist}',
selectedMode : 'single', //限制只显示一条数据(折线)
},
上面的整体代码中也有,只是被注释了。可参考哦~