首页 > 其他分享 >echart 多x轴tooltip显示表格

echart 多x轴tooltip显示表格

时间:2024-12-26 10:45:56浏览次数:3  
标签:axisIndex echart 表格 tooltip seriesName item params marker tooltipHtml

    formatter: function (params: any[]) {
        // 创建表格的HTML结构
        var tooltipHtml = '<div style="font-family: Arial, sans-serif; color: #333;">'
        // 创建表格
        tooltipHtml += '<table style="width: 100%; border-spacing: 0; border-collapse: collapse;">'

        tooltipHtml += '<tr>'
        tooltipHtml +=
          '<td style="padding: 8px; font-weight: bold; text-align: center; border: 1px solid #ccc;">数据项</td>'

        // 使用集合来存储 X 轴的列(避免重复显示)
        var axisIndices: any[] = []
        params.forEach(function (item: { axisIndex: string; name: string }) {
          // 只在 axisIndex 发生变化时显示
          if (axisIndices.indexOf(item.axisIndex) === -1) {
            tooltipHtml +=
              '<td style="padding: 8px; font-weight: bold; text-align: center; border: 1px solid #ccc;">' +
              item.name +
              '</td>'
            axisIndices.push(item.axisIndex) // 记录已显示的 axisIndex
          }
        })
        tooltipHtml += '</tr>'

        // 使用一个 Set 来确保唯一的系列名称
        var seriesNames: Set<string> = new Set()
        var seriesMarkers: { [key: string]: string } = {} // 用于存储每个系列的标记图标

        // 遍历 params 获取唯一的系列名称并记录其 marker
        params.forEach(function (item: { seriesName: string; marker: string }) {
          if (!seriesNames.has(item.seriesName)) {
            seriesNames.add(item.seriesName)
            seriesMarkers[item.seriesName] = item.marker // 存储该系列的标记图标
          }
        })

        // 第二行及之后:显示每个系列的数据
        seriesNames.forEach(function (seriesName) {
          tooltipHtml += '<tr>'

          // 获取当前系列的标记图标(marker)
          var marker = seriesMarkers[seriesName]

          // 显示标记图标和系列名称
          tooltipHtml +=
            '<td style="padding: 8px; text-align: left; border: 1px solid #ccc;">' +
            marker +
            seriesName +
            '</td>'

          // 遍历每个 X 轴的数据
          axisIndices.forEach(function (axisIndex) {
            var found = false
            // 遍历params中的每一项,查找匹配的系列和 X 轴
            params.forEach(function (item: { seriesName: any; axisIndex: any; value: any }) {
              if (item.seriesName === seriesName && item.axisIndex === axisIndex) {
                tooltipHtml +=
                  '<td style="padding: 8px; text-align: center; border: 1px solid #ccc;">' +
                  (item.value || '-') +
                  '</td>'
                found = true
              }
            })
            // 如果找不到该系列在该X轴的数据,显示空白
            if (!found) {
              tooltipHtml +=
                '<td style="padding: 8px; text-align: center; border: 1px solid #ccc;"></td>'
            }
          })
          tooltipHtml += '</tr>'
        })

        // 结束表格
        tooltipHtml += '</table>'
        tooltipHtml += '</div>'

        return tooltipHtml // 返回自定义的 HTML 内容
      }

标签:axisIndex,echart,表格,tooltip,seriesName,item,params,marker,tooltipHtml
From: https://www.cnblogs.com/zhengzhijian/p/18632192

相关文章

  • echart tooltip 默认
    //默认的tooltipformatterformatter:function(params:any[]){vartooltipHtml='<divstyle="font-family:Arial,sans-serif;color:#333;">'//第1行显示xAxis类目(即x轴的类别数据)tooltipHtml+='......
  • 基于bootstrap的表格头固定jquery插件
    jquery.decapitate.js是一款基于bootstrap的表格头固定jquery插件。该jquery插件可以在页面向下滚动时,将表格头固定在视口的顶部。在线预览  下载 使用方法在页面中引入jquery、bootstrap-affix.js和jquery.decapitate.js文件。<scriptsrc="path/to/js/jquery.m......
  • jExcel-类似Excel的jquery电子表格插件
    jexcel.js是一款轻量级的类似Excel的jquery电子表格插件。你可以同js数组、json数据或CSV文件来为jexcel表格提供数据,你甚至可以直接从一个Excel表格中直接复制粘贴数据到jexcel表格中。在线预览  下载  使用方法在页面中引入jquery、jquery.jexcel.js和jquery.jexcel.c......
  • 增加一个表格新增行时的校验demo
    效果图,在新增行时增加空值判断,如果有空值不允许新增行 vue2代码示例<template><divclass="home"><el-form:model="form"ref="form":rules="rules"><el-table:data="form.tableData"styl......
  • Loadrunner12 Controller 运行时不显示具体信息可视化的表格视图 解决方案
     loadrunnercontroller点击run运行时,下方的窗口没有显示表格视图,无法实现可查看资源的实时运行情况 实际上,左侧已经显示设计场景在运行了,蓝色部分为可查看部分 解决方案:1.点击view-viewgraphs-showxxgraphs;选择需要显示几个表格形式(这里我选择4个) 2.......
  • python常用处理表格参数
    在Python中处理表格数据,常用的库包括pandas、openpyxl、xlrd、xlwt等。以下是一些常用的处理表格参数和方法:使用pandas处理表格pandas是Python中处理表格数据最强大的库之一。以下是一些常用的参数和方法:读取表格数据importpandasaspd......
  • 运维系列&前端系列:echarts超出容器宽度问题的解决办法
    echarts超出容器宽度问题的解决办法echarts超出容器宽度问题的解决办法问题:解决方法:echarts超出容器宽度问题的解决办法问题:在使用vue+iview+echarts时,出现了echarts图标刷新页面会超出容器宽度的问题,效果如下:DOM结构:JS代码:解决方法:在网上查找了很多方......
  • 前端-如何把手风琴和表格融合一起
    效果示意图:模板代码:<divstyle="width:80%;overflow-x:scroll;overflow-y:scroll"><divstyle="margin-top:5px;height:500px"><tableclass="header-table"><thead><......
  • Transformers 框架 Pipeline 任务详解(五):表格问答(table-question-answering)
    在自然语言处理领域,表格问答是一项能够从结构化数据中提取信息的关键技术。它结合了自然语言理解和表格数据处理的能力,使得用户可以通过自然语言提问来获取表格中的特定信息。HuggingFace的Transformers框架通过其PipelineAPI提供了强大的table-question-answering功能,允许......
  • ZBlog的表格为什么没有边框?
    原因:默认情况下,HTML中的<table>标签是没有边框的。编辑器为了方便用户识别,会临时给表格加上边框。解决办法:直接在<table>标签中加上边框属性:html <tableborder="1">使用CSS美化表格边框:修改主题的CSS文件,添加以下代码:css table{border-collapse:......