Javascript Highcharts共享工具提示定位(如果仅为单个值)

Javascript Highcharts共享工具提示定位(如果仅为单个值),javascript,css,highcharts,tooltip,Javascript,Css,Highcharts,Tooltip,如果您看到下面的示例,当您将鼠标悬停在点上时,工具提示将位于点的左侧,除非您将鼠标悬停在“六月”月份,该月份只有一个值 当我将鼠标悬停在一个点上且一个点上有多个值时,以及当我将鼠标悬停在一个点上且只有一个值可用时,我试图使工具提示显示在相同的位置。(这是一个共享的工具提示) 你知道我如何使单值工具提示与其他工具提示的行为相同吗 或下面的片段: Highcharts.chart('container'{ xAxis:{ 类别:[一月、二月、三月、四月、五月、六月、七月], “八月”、“九月”、“

如果您看到下面的示例,当您将鼠标悬停在点上时,工具提示将位于点的左侧,除非您将鼠标悬停在“六月”月份,该月份只有一个值

当我将鼠标悬停在一个点上且一个点上有多个值时,以及当我将鼠标悬停在一个点上且只有一个值可用时,我试图使工具提示显示在相同的位置。(这是一个共享的工具提示)

你知道我如何使单值工具提示与其他工具提示的行为相同吗

或下面的片段:

Highcharts.chart('container'{
xAxis:{
类别:[一月、二月、三月、四月、五月、六月、七月],
“八月”、“九月”、“十月”、“十一月”、“十二月”]
},
打印选项:{
系列:{
connectNulls:true
}
},
工具提示:{
分享:是的,
十字准星:对
},
系列:[{
数据:[29.9,71.5,106.4,129.2,144.0,176.0,135.6148.5,216.4194.1,95.6,54.4]
}, {
数据:[216.4194.1,95.6,54.4,29.9,null,106.4129.2144.0176.0135.6148.5]
}]
});

这是因为在第二个数据数组的6月份中输入了一个
null
值,如果输入了正确的值,则月份将正确匹配

Highcharts.chart('container'{
xAxis:{
类别:[一月、二月、三月、四月、五月、六月、七月],
“八月”、“九月”、“十月”、“十一月”、“十二月”]
},
打印选项:{
系列:{
connectNulls:true
}
},
工具提示:{
分享:是的,
十字准星:对
},
系列:[{
数据:[29.9,71.5,106.4,129.2,144.0,176.0,135.6148.5,216.4194.1,95.6,54.4]
}, {
数据:[216.4194.1,95.6,54.4,29.9,71.5106.4129.2,144.0176.0,135.6148.5]
}]
});

正如我在评论中提到的,您应该能够使用tooltip.positioner将工具提示定位在您的点附近:


活生生的例子:

不,我想我没有解释清楚。这实际上是我的观点。如果其中一个点没有值/null,我仍然希望工具提示位于它通常所在的位置is@wsgg好的,但是如果你输入null,你就不能像其他的一样显示这个值,你可能会在输入null的地方计算出哪个值,这样就可以显示这个值了。对不起,我不是真的想显示null值。我只是想让工具提示显示在相同的位置。您应该能够使用tooltip.positioner来正确定位工具提示:您还可以禁用共享,使用格式化程序和内部循环来查找来自相同x的所有点。因此,您将在一个弹出窗口中保留位置和所有点。@GrzegorzBlachliński噢,是的,这就是我要找的。虽然现在边上的工具提示实际上会从窗口中消失。但我会从这里开始。谢谢我很高兴听到我的榜样对你有用。代码的改进版本应该满足您的要求:如果这个示例适合您,我将以answer@GrzegorzBlachli当然,请说吧!
  tooltip: {
    shared: true,
    crosshairs: true,
    positioner: function(labelWidth, labelHeight, point) {
      var x;
      if (point.plotX - labelWidth / 2 > 0) {
        x = point.plotX - labelWidth / 2;
      } else {
        x = 0
      }
      return {
        x: x,
        y: point.plotY
      }
    },
    shape: 'square'
  },