在使用echarts+vue的过程中出现了一个需求,在echarts接收到需要展示的data数组后,项目需要筛选数组中的指定数据,筛选成功后在图表中形成可视标记以区别于正常数据。
发现需求的第一时间,我查阅了echarts的官方文档,发现使用series模块下的markpoint可以在折线图上形成标记,但官方文档中只介绍了单一坐标点、最大值最小值等的生成方式,按照这些生成方式无法满足遍历筛选数组后形成多个标记点的需求。
于是,通过一些实验性的操作,使用函数形式return筛选数组解决了我的问题。记录一下过程及方案,希望能顺便帮到有需要的朋友。
//优先声明 _this = this, topAlarmYPoints及topAlarmXPoints为提前筛选的数组
series: [
{
name: '上层温度值',
type: 'line',
smooth: true,
data: this.topTemps,
markPoint: {
data: (function() {
const data = []
let len = _this.topAlarmXPoints.length
console.log('长度: ', len)
while (len--) {
data.push({
xAxis: _this.topAlarmYPoints[len],
yAxis: _this.topAlarmXPoints[len],
name: '未响应',
value: '未响应'
})
}
return data
})() //此处的括号必须得加 不加无法产生效果 不清楚原因 有知晓的朋友麻烦指点一下
}
}
]