Highcharts - 在legendItemClick上显示和隐藏绘图线和条带的问题

jlb*_*ggs 0 javascript jquery highcharts

我有一个图表,我有几个x轴plotLines和plotBands.我有一个函数,在legendItemClick上,将显示/隐藏plotLines和Bands.(它是一个直方图,正常曲线重叠,标记了stdev水平)

图表和代码可以在这里看到:http://jsfiddle.net/jlbriggs/FnhRV/

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;
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

问题:当显示或隐藏其他系列,并且x轴相应缩放时,如果任何绘图线或条带从比例下降,则行为开始变得迟钝.

在发布的示例中,如果隐藏正常曲线系列,则最外面的绘图线将位于x轴的边界之外.一旦发生这种情况,每当您隐藏它们时,这两行将重新出现,并且单击各种图例项将导致不应该隐藏/可见的各种状态.

如果该系列对于绘图线始终保持足够宽,则不会发生此错误,并且显示和隐藏将按照预期快乐地发生.

谁能告诉我为什么会这样,和/或提供解决方案?提前致谢

杰米

{{edit:设置min和max以匹配曲线值对这种情况下的情况没有帮助,因为所需的可用性是用户可以隐藏曲线并查看缩放到直方图数据的图表.

Paw*_*Fus 6

PlotLines并且plotBands回来了,因为当轴再次显示时,它还应该渲染所有的plotLines和plotBands.然后你无法轻松控制plotLines和plotBands.怎么解决?而不是隐藏/显示SVG元素,删除plotLines/plotBands或根据需要添加它们.这是您的解决方案:http://jsfiddle.net/FnhRV/19/