【问题标题】:How to force tooltip to show in multiple graphs in highcharts with Vue 3?如何使用 Vue 3 强制工具提示在高图中的多个图表中显示?
【发布时间】:2021-03-18 17:39:56
【问题描述】:

我正在使用带有 Highcharts 的 vue3-highcharts。我想实现这样的目标:https://codepen.io/lzl124631x/pen/KLEdby?editors=1010 但我不确定如何在 Vue 3 中编写这些函数(如语法)。

到目前为止,我已经设法同步 x 轴缩放、悬停和显示十字准线。但是我无法让工具提示显示在所有图表中。这是我为使 xAxis 缩放所做的操作:

xAxis: {
  events: {
    afterSetExtremes: function (e) {
      if (e) {
         Highcharts.charts.forEach((chart) => {
           if (chart && chart.index !== e.chartId) {
              chart.xAxis[0].setExtremes(e.min, e.max);
           }
         })
      }
    }
  }
},

为了让悬停和十字准线同步,我这样做了:

plotOptions: {
  series: {
    point: {
      events: {
        mouseOver: function (e) {
          let series = e.target.series;
          let index = series.xData.indexOf(e.target.index);
          
          Highcharts.charts.forEach((chart) => {
            if (chart && chart.index !== e.chartId) {
              let event = chart.pointer.normalize(e)
              
              let data = chart.series[0].data[index];
              if (data) {
                data.setState('hover');
                chart.xAxis[0].drawCrosshair(event, data);
                
                chart.tooltip.refresh(data); 
              }
            }
          })
        },
        
      }
    }
  }
},

为了显示工具提示,我尝试了:

chart.tooltip.refresh(data);

但这会返回错误。

编辑:万一有人偶然发现的解决方案:

chart.tooltip.refresh([data]);

【问题讨论】:

    标签: javascript vue.js highcharts


    【解决方案1】:

    不幸的是,官方的 Highcharts Vue 包装器不支持 vue3。

    【讨论】:

    • 如果不使用事件总线,你将如何在 Vue 2 中做到这一点?
    • 或者我将如何使用手套实现它? Highcharts 正在工作,但我只是不知道如何显示工具提示。如果您能告诉我如何在悬停在其他地方时强制显示工具提示,那将非常有帮助。
    • 或者我可以制作自己的工具提示,但我无法将值分配给外部变量。出于某种原因,“this”指的是图表而不是代码。所以我什至无法提取类别和 y 值来构建我自己的工具提示。因此,如果您能提供帮助,那将是非常有帮助的。
    • 我也可以让工具提示始终显示,也许你可以帮我解决这个问题?
    • 您可以使用 tooltip.refresh() 方法强制刷新工具提示。 API:api.highcharts.com/class-reference/Highcharts.Tooltip#refresh。因此,当您使用 setState 和 drawCrosshair 方法时,在 mouseOver 上放置这段代码:chart.tooltip.refresh([data]);。演示:codesandbox.io/s/nervous-albattani-2oj2m
    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    相关资源
    最近更新 更多