echars legend图例中显示动态数据

1.问题描述

在echars图中,通过坐标轴指示器axispointer触发时,在legend图例中动态展示数据(与tooltip提示框相似,相当于把tooltip中的数据显示在legend中)。

2.解决思路

1)若想在legend中动态展示数据,就要先想到legend中的数据是随着axispointer(坐标轴指示器)的移动而动态显示的。因此,要通过axispointer去获取想要展示的数据。
(2)由于legend formatter函数的参数会自动遍历,因此选择switch,可以改变不同的图例legend

3. 解决方法(记录一下自己的解决方法)

(1)首先在axispointer中

axisPointer: {
  link: {xAxisIndex: 'all'},
  label: {
    backgroundColor: '#ccc',
    formatter: param => {
      const Param1 = param.seriesData.find(item => item.seriesName === 'Param1');
      const Param2 = param.seriesData.find(item => item.seriesName === 'Param2');
      const Param3 = param.seriesData.find(item => item.seriesName === 'Param3');
      const Param4 = param.seriesData.find(item => item.seriesName === 'Param4');
      if(Param1) {
      //把想要展示的数据存储在data中
        this.LegendData1 = Param1.data;
        this.LegendData2 = MA10Param.data;
        this.LegendData3 = Param3.data;
        this.LegendData4 = Param4.data;
      }
      return value;
    }
  }
},

(2)legengd中,利用switch可以达到不同的图例具有不同的样式和不同数据

legend: {
  left: 'center',
  data: [this.title, 'Param1', 'Param2', 'Param3', 'Param4'],
  formatter: (params) => {
    switch (params) {
      case this.title:
        return params;
        break;
      case 'Param1':
        return params + ': ' + this.LegendData1;
        break;
      case 'Param2':
        return params + ': ' + this.LegendData2;
        break;
      case 'Param3':
        return params + ': ' + this.LegendData3;
        break;
      case 'Param4':
        return params + ': ' + this.LegendData3;
        break;
      default: 
        return '';
    }
  }
},
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值