ECharts tooltip默认html样式,保留样式只对数据数值格式化

之前遇到过需要对数据进行百分比展示,echarts提供的默认样式还是挺好的所以想保留样式,但是设置了formatter默认样式就没了,所以写了formatter的html字符串模拟还原了一下默认样式,在此记录和分享。

适用场景:对数据进行处理或格式化但想保留默认tooltip样式

示例截图:在tooltip中对数据添加了%

 效果查看:将👇代码复制到 echarts解析  

option = {
  tooltip: {
    show: true,
    trigger: 'axis',
    appendTo: 'body',
    formatter: (params) => {
      // tooltip标题
      let titleHtmlStr = `<div style="font-size:14px;color:#666;font-weight:400;line-height:1;">${params[0].name}</div>`;

      // tooltip详情内容
      const itemHtmlStrArr = params.map((item) => {
        return `<div style="display: flex;align-items:center;">
          ${item.marker}
          <div style="font-size: 14px;color: #666;margin: 0 20px 0 2px;">${item.seriesName}</div>
          <span style="margin-left: auto;text-align: right;font-weight: 900;">${item.value}%</span>
        </div>`;
      });
      const contentHtmlStr = `<div style="display: flex;flex-direction: column;margin-top: 10px;">
        ${itemHtmlStrArr.join('')}
      </div>`;

      // 最终html字符串
      const resHtmlStr = titleHtmlStr + contentHtmlStr;
      return resHtmlStr;
    }
  },
  legend: {},
  grid: {
    left: '3%',
    right: '4%',
    bottom: '3%',
    containLabel: true
  },
  xAxis: {
    type: 'category',
    boundaryGap: false,
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      name: 'Email',
      type: 'line',
      smooth: true,
      data: [12.2, 13.3, 10.1, 13.6, 40.5, 23.6, 21.3]
    },
    {
      name: 'Union Ads',
      type: 'line',
      smooth: true,
      data: [22.1, 18.4, 19.6, 23.5, 29.3, 33.9, 31.2]
    }
  ]
};

2024-10-23更新

今天发现另一个属性:tooltip.valueFormatter  可以直接格式化value,但是不影响默认样式,如果只是简单的数据格式化可以用这个替代上面的方案。

 效果查看:将👇代码复制到 echarts解析  

option = {
  tooltip: {
    show: true,
    trigger: 'axis',
    appendTo: 'body',
    valueFormatter: (value)=> value + '%',
  },
  legend: {},
  grid: {
    left: '3%',
    right: '4%',
    bottom: '3%',
    containLabel: true
  },
  xAxis: {
    type: 'category',
    boundaryGap: false,
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      name: 'Email',
      type: 'line',
      smooth: true,
      data: [12.2, 13.3, 10.1, 13.6, 40.5, 23.6, 21.3]
    },
    {
      name: 'Union Ads',
      type: 'line',
      smooth: true,
      data: [22.1, 18.4, 19.6, 23.5, 29.3, 33.9, 31.2]
    }
  ]
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值