Javascript Highcharts-在legendItemClick上显示和隐藏绘图线和标注栏的问题

Javascript Highcharts-在legendItemClick上显示和隐藏绘图线和标注栏的问题,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我有一张图表,上面有几个x轴绘图线和绘图带。 我有一个函数,它在legendItemClick上显示/隐藏绘图线和标注栏。 (这是一个直方图,叠加了正常曲线,并标记了stdev级别) 可在此处查看图表和代码: 问题是:当显示或隐藏其他系列时,x轴会相应地缩放,如果任何绘图线或标注栏从比例上脱落,则行为开始变得可疑 在发布的示例中,如果隐藏法线曲线系列,则最外面的打印线将位于x轴的边界之外。 一旦发生这种情况,这两行将在每次隐藏它们时重新出现,单击各种图例项将导致各种不应显示的隐藏/可见状态 如果

我有一张图表,上面有几个x轴绘图线和绘图带。 我有一个函数,它在legendItemClick上显示/隐藏绘图线和标注栏。 (这是一个直方图,叠加了正常曲线,并标记了stdev级别)

可在此处查看图表和代码:

问题是:当显示或隐藏其他系列时,x轴会相应地缩放,如果任何绘图线或标注栏从比例上脱落,则行为开始变得可疑

在发布的示例中,如果隐藏法线曲线系列,则最外面的打印线将位于x轴的边界之外。 一旦发生这种情况,这两行将在每次隐藏它们时重新出现,单击各种图例项将导致各种不应显示的隐藏/可见状态

如果该系列的轴始终保持足够宽的打印线,则不会发生此错误,并且显示和隐藏将按照预期进行

有人能告诉我为什么会发生这种情况,和/或提供解决方案吗? 提前谢谢

杰米

{{编辑:
在这种情况下,设置最小值和最大值以匹配曲线值对这种情况没有帮助,因为所需的可用性是用户可以隐藏曲线并查看按直方图数据缩放的图表。

我建议设置最小值/最大值


我建议设置最小/最大值


PlotLines
plotBands
正在返回,因为当再次显示axis时,它还应渲染所有的PlotLines和plotband。然后您无法轻松控制PlotLines和plotband。如何解决此问题?与其隐藏/显示SVG元素,不如删除PlotLines/plotBands或根据需要添加它们。以下是解决方案为您打开:

PlotLines
plotBands
正在返回,因为当再次显示axis时,它还应渲染所有的PlotLines和plotBands。然后您无法轻松控制PlotLines和plotBands。如何解决此问题?与其隐藏/显示SVG元素,不如根据需要删除PlotLines/plotBands或添加它们。这是给您的解决方案:

这是我考虑的第一个选项,但如果我隐藏曲线,我真的希望能够将x轴缩放到直方图数据。在给定的示例中,缩放的差异是最小的,但在许多情况下差异相当大。在这些情况下,不允许用户隐藏曲线和视图独立的列将对可用性造成重大损害。有人有什么建议吗?我被卡住了,需要如何使其正常运行…这是我考虑的第一个选项,但如果我隐藏曲线,我真的希望能够将x轴缩放到直方图数据。在给定的示例中,缩放的差异是最小的,但在许多情况下差异相当大。在这些情况下,不允许用户隐藏曲线和独立查看列将对可用性造成重大损害。有人有任何提示吗?我被卡住了,需要让它正常运行一些如何…任何人…?有任何关于如何克服此问题的提示吗这意味着没有解决方案?任何人…?任何关于如何克服此问题的提示?这是否意味着没有解决方案?工作良好!除此之外,还需要注意yAxis的销毁和更新,否则可能无法按预期工作…工作良好!除此之外,还需要注意yAxis的销毁和更新,否则它可能无法按预期工作。。。
function toggleBands(chart) {
  $.each(chart.xAxis[0].plotLinesAndBands, function(index,el){
    if(el.svgElem != undefined) {
      el.svgElem[ el.visible ? 'show' : 'hide' ]();
      el.visible = !el.visible;
    }
  });
}
    min:-3,
    max:3,
    showEmpty: true,