在使用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
                })() //此处的括号必须得加 不加无法产生效果 不清楚原因 有知晓的朋友麻烦指点一下
              }
            }
]

 

Logo

前往低代码交流专区

更多推荐