Echarts折线图问题(单条折线与多条折线)

单条显示就没有问题,但是一旦多个折线一起显示,其中两个折线相交的地方图形显示就出现了问题(前一个显示的折线(就叫“折线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',  //限制只显示一条数据(折线)
					},

上面的整体代码中也有,只是被注释了。可参考哦~

猜你喜欢

转载自blog.csdn.net/qq_34266804/article/details/86503471