echarts中针对不同数据点单独设置tooltip提示框不生效具体解决办法

在Echarts项目开发中,如果需要对series内的不同数据类型设置单独的tooltip,需注意在主设置中关闭tooltip显示,并在每个series中设置trigger为item。同时,需确保在series的tooltip中开启显示并自定义样式,如颜色和格式化函数。
摘要由CSDN通过智能技术生成

1.问题描述

项目开发过程中,echarts图中series内有不同类型的数据,想对不同类型数据单独设置tooltip,发现提示框不生效。

2.原因说明

  • 原因1:单独设置不生效可能在主体部分没有先给出tooltip的设置,若下图中的位置没有先设定好tooltip,单独设置tooltip的时候也无法生效。
    在这里插入图片描述

  • 原因2:一般单独设置tooltip都是在series中对每个type的数据进行设置,但是设置过程中tooltip中需要注意trigger必须为’item’,否则不生效,官方文档有说明如下:
    在这里插入图片描述
    series外的主体部分设置tooltip.show为false是因为主体的样式可能会影响后续单独样式的设置,因此我设置为false,后续series内的tooltip需要设置为serier.tooltip.show为true。
    在这里插入图片描述

3.完整代码案例实现

<template>
    <div>
      <div ref="chart" id="lineChart" style="height: 400px; width: 800px"></div>
    </div>
  </template>
  
  <script>
  import * as echarts from 'echarts'; // 引入echarts, * as echarts 表示引入所有的方法
  
  
  export default {
    data() {
      return {
        chart: null,
        dialogVisible: false,
        tipTitle: null
      }
    },
    mounted() {
      this.init()
  
    },
    methods: {
      init() {
        this.chart = echarts.init(this.$refs.chart);
  
        // 绘制图表
        const option = {
          tooltip: { // 在主体中定义 tooltip
            show: false, // 不显示tooltip
            trigger: 'none', // 去除默认的 'axis' 触发方式
          },
          xAxis: {
            type: 'category',
            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
          },
          yAxis: {
            type: 'value'
          },
          series: [{
            name: 'scatter',
            type: 'scatter',
            tooltip: {
              show: true,  //此处由于前面定义了全局的tooltip,所以这里必须设置为true才能生效
              trigger: 'item', // 单独设置样式时必须为item才能生效
              backgroundColor: 'rgba(110, 112, 121, 0.9)', //对该系列数据单独设置tooltip背景颜色
              formatter: (params) => {
                console.log('params-->>',params);
                return  params.seriesName + '<br/>' + params.data[0] + ' : ' + params.data[1];
              },
              textStyle: {
                color: '#fff'
              }
            },
            data: [
              [0, 1],
              [1, 5],
              [2, 3],
              [3, 4],
              [4, 2],
              [5, 8],
              [6, 6]
            ]
          }, {
            name: 'line',
            type: 'line',
            tooltip: {
              show: true,
              trigger: 'item', 
            },
            data: [1, 3, 2, 5, 4, 6, 8]
          }]
        };
        this.chart.setOption(option);
      },
  
    }
  }
  </script>
  
  
可以通过 Echartstooltip formatter 属性来实现一个显示多个实时数据tooltip 提示框具体操作步骤如下: 1. 在 Echarts 的 option 定义一个数组,用于存储所有数据的实时数据信息。 ```javascript var data = [ {name: '2019-01-01', value: [10, 20, 30]}, {name: '2019-01-02', value: [15, 25, 35]}, {name: '2019-01-03', value: [20, 30, 40]}, ... ]; ``` 2. 在折线图的 series ,将每个数据的实时数据信息存储到 itemStyle.normal.label 属性。 ```javascript var series = [ { name: '数据一', type: 'line', data: data.map(function(item) { return { name: item.name, value: item.value[0], label: { normal: { show: true, formatter: function(params) { return params.data.value[0]; } } } }; }) }, { name: '数据二', type: 'line', data: data.map(function(item) { return { name: item.name, value: item.value[1], label: { normal: { show: true, formatter: function(params) { return params.data.value[1]; } } } }; }) }, { name: '数据三', type: 'line', data: data.map(function(item) { return { name: item.name, value: item.value[2], label: { normal: { show: true, formatter: function(params) { return params.data.value[2]; } } } }; }) } ]; ``` 3. 在折线图的 tooltip ,使用 formatter 属性自定义 tooltip 显示的内容。 ```javascript var option = { tooltip: { trigger: 'axis', formatter: function(params) { var result = params[0].name + '<br/>'; for (var i = 0; i < params.length; i++) { var item = params[i]; var value = item.data.value; result += item.seriesName + ': ' + value.join(', ') + '<br/>'; } return result; } }, ... }; ``` 这样,当鼠标悬浮在某个数据上时,tooltip 提示框会显示该数据对应的所有实时数据信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

deku-yzh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值