echarts无数据时间点tooltips显示数据(已解决)

问题描述:

折线图的x轴 type: 'value',如果某些时间点没有数据,但是tooltip触发为X轴触发即:trigger: 'axis'时,会出现那个时间点上虽然无数据,但是tooltip的function会返回最近的时间点的数据。

问题信息:

问题原因:

因为x轴 time 类型和 value 类型是连续数值型的,在 trigger 为 axis 的时候会去找距离最近的值而非那个点上的值。

解决方案:

坐标轴的时间范围是固定的,但是我数据的范围有可能只包含在其中,15:35 - 20:35,有可能获取到的数据只有15:35 - 16:35,可以将没有时间范围数据的value值补充 '-' 值,这样的话tooltip中也可以显示,但是图表是不会绘制出图线的

在tooltips中:

接下来就只需要处理tooltips中的数据就可以了:tooltip中提供了 formatter 函数,在 formatter 函数中,我们只需要过滤掉value中为 '-' 的值

    tooltip: {
      show: true,
      trigger: 'axis',
      formatter: function (params: any) {
        // 检查当前数据是否有效,如果有效则显示 tooltip 内容,否则返回空字符串
        if (params.some((param: any) => param.data.value[1] !== '-')) {
          let tooltipContent = `时间:${
            formatTimePlus(
              formatDate(new Date(params[0].data.value[0])),
            ).split(' ')[1]
          }<br>`
          params.forEach(function (param: any) {
            tooltipContent += `<img src="${param.data.symbol.replace(
              'image://',
              '',
            )}" style="width: 12px; height: 12px; margin-right: 5px;">`
            tooltipContent += `${param.seriesName}: ${param.data.value[1]}<br>`
          })
          return tooltipContent
        } else {
          return '' // 返回空字符串,表示不显示 tooltip
        }
      },
      feature: {
        restore: false,
        dataView: false,
        saveAsImage: false,
      },
    },

这样就可以完美解决问题了!

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答:在Echarts显示tooltips可以通过配置项中的tooltip属性来实现。首先需要设置trigger为'axis',表示当鼠标悬停在坐标轴上时显示tooltips。可以通过设置tooltip的formatter属性来自定义tooltips的显示内容。在formatter中可以使用模板变量,如{a}代表系列名,{b}代表数据名,{c}代表数据值。对于多个系列的情况,可以通过{a0}、{a1}等后面加索引的方式表示系列的索引。可以通过设置tooltip的confine属性为true来实现。例如: tooltip: { trigger: 'axis', confine: true } 通过以上配置,可以实现在Echarts显示tooltips,并且可以根据需要自定义tooltips的内容和样式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [echarts——tooltips动态循环展示+柱状图动态循环展示](https://blog.csdn.net/yehaocheng520/article/details/127287781)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [echarts中的自定义tooltips](https://blog.csdn.net/weixin_41237259/article/details/87608809)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [echarts tooltips数据内容过多超出显示范围](https://blog.csdn.net/xiaoxiannvh/article/details/126174412)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值