echarts 动态展示title以及动态展示tooltip

需求:点击图例,重新计算 title 总数,toolTip的formatter 回调拼接

监听图例选择change事件,回调参数返回了当前选择的数据,具体返回内容请查官网,或自己打印一下就知道了。

 myChart.on('legendselectchanged', function (params) {
      var select_key = Object.keys(params.selected);
      var select_value = Object.values(params.selected);
      var list = select_key.map((v, ind) => {
        return {
          name: v,
          selected: select_value[ind]
        }
      })
      let t = 0
      let count = 0
      let countS = '0'
      if (variable) {
        // variable 为图表数据
        variable.forEach(v => {
          list.forEach((x, ind) => {
            if (x.name == v.name && x.selected) {
              t += Number(v.value)
              count += Number(v.typeCount)
              countS = count+'家'
            }
          })
        })
      }
      myChart.setOption({
//重新计算 title展示,由于我这title 要展示多个字段,所以我这里对title 进行了拼接
        title: [
          {
            text: '{name|' + countS + '}\n{val|(' + formatNumber(t) + '}{c|人)}',
            top: 'center',
            // textAlign:'center',
            left: countS == 0 ? '22%':countS.length == 2 ? '18%' : countS.length == 3 ? '15.5%':countS.length == 4 ? '12.5%': '10%',
            textStyle: {
              rich: {
                name: {
                  fontSize: 37,
                  fontWeight: 'normal',
                  fontFamily: 'PangMenZhengDao',
                  color: '#fff',
                  padding: [10, 0, 0, 20],
                },
                val: {
                  fontSize: 16,
                  fontWeight: 'normal',
                  color: '#fff',
                  padding:t==0?[0,0,0,20]:t.length == 2 ?[5, 2, 0, 17]:[5, 2, 0, 0]
                },
                c: {
                  fontSize: 16,
                  fontWeight: 'normal',
                  color: '#fff',
                  padding: [5,0 , 0,0]
                },
              },
            },
          },
        ],
      })
    })

把上述 length监听事件 放在 myChart.setOption(option)后面,就完成了

 toolTip 在formatter 回调中自定义tooltip内容

一般来说,不需要我们去自定义tooltip内容,如果数据比较复杂,且包含了两周且以上类型的图表在一起,可能就需要我们去自定义拼接tooltip,

一般直接使用  a,b,c,就可以满足需要

以下是自定义tooltip 

tooltip: { //提示框组件
        trigger: 'axis',
        // <br />{a0}:{c0}<br/>{a1}:{c1}<br/>{a2}:{c2}%
        formatter: function (params) {
          let str = `${params[0].name}<br />`
          params.map(item=>{
            if(item.componentSubType === 'bar' || item.componentSubType === 'line'){
              str += item.componentSubType === 'line'?`${item.seriesName}:${item.value}%<br />`:`${item.seriesName}:${item.value}<br />`
            }
          })
          console.log(str)
          return str
        },
        axisPointer: {
          type: 'shadow',
          label: {
            backgroundColor: '#ccc'
          }
        },
        textStyle: {
          color: 'rgb(0,0,0)',
          fontStyle: 'normal',
          fontFamily: '微软雅黑',
          fontSize: 10,
        }
      },

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
echartstooltip可以通过多种方式设置位置。其一种方式是通过返回一个表示tooltip位置的数组,数组的值可以是绝对像素值或相对百分比。例如,可以设置tooltip的position属性为一个函数,并在函数返回一个数组来指定tooltip的位置,如['40%', 30]表示在横向距离图表容器左边40%的位置,纵向距离图表容器上边30像素的位置显示tooltip。 另一种设置tooltip位置的方式是直接指定位置值,例如设置position属性为'bottom',表示tooltip显示在图形底侧。 还可以通过回调函数来设置tooltip的位置。其,回调函数的参数包含了point、params、dom、rect和size等信息,可以根据这些信息来自定义tooltip的位置。 需要注意的是,size参数表示echarts容器的尺寸,包括外层div的大小和tooltip提示框的大小。通过size参数可以进一步调整tooltip的位置。 综上所述,echartstooltip可以通过返回数组、直接指定值或回调函数来设置位置。具体的设置方法可以根据实际需求来选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [echartstooltip的位置设置](https://blog.csdn.net/weixin_43765747/article/details/122063256)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值