当数值中有一些项为0时,折线图将返回0,再与有值的进行连接。
这种情况出现在:“多个值,只选择一个进行录入。没有录入的值,默认为0”。
解决办法:
在每项设置中添加标黑参数,表示连接空值:
series: [{
name: '空腹血糖',
type: 'line',
smooth: true,
data: data1,
connectNulls: true,
而数值应该按它的格式,如:[3.4,,4.3,3.0,,,2.9]。即当值为0时,保持为空值。
因为后台传过来的是JSON,格式不符合要求。所以通过前台代码先JSON.stringify,再replace。
看起来以上的效果并不好,转换出来的为string,而实际上它需要的是object。在自动转换的过程中,它似乎没有认到小数。
于是,在option中换了一下:
var d1 = [];
var d2 = [];
var d3 = [];
for (var i=0;i<data1.length;i++) {
if (data1[i]==0) { d1.push(undefined) } else { d1.push(data1[[i]]) }
if (data2[i]==0) { d2.push(undefined) } else { d2.push(data2[[i]]) }
if (data3[i]==0) { d3.push(undefined) } else { d3.push(data3[[i]]) }
}
因为,发现数组没有值,是可以用undefined代替的。或许后台代码也可以判断为0时,直接输出undefined,不过有点挫。