0

我有一个图表,上面有几个 x 轴 plotLines 和 plotBands。我有一个函数,在 legendItemClick 上,将显示/隐藏 plotLines 和 Bands。(这是一个叠加了正态曲线并标记了标准差水平的直方图)

图表和代码可以在这里看到: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;
    }
  });
}

问题:当显示或隐藏其他系列时,并且 x 轴相应地缩放,如果任何情节线或带从比例尺上掉下来,行为就会开始变得古怪。

在发布的示例中,如果隐藏法线曲线系列,最外面的绘图线将超出 x 轴的范围。一旦发生这种情况,每次隐藏它们时这两行都会重新出现,并且单击各种图例项将导致各种不应该的隐藏/可见状态。

如果该系列的轴始终保持足够宽以容纳情节线,则不会发生此错误,并且显示和隐藏将按预期愉快地发生。

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

杰米

{{edit:设置最小值和最大值以匹配曲线值在这种情况下无济于事,因为所需的可用性是用户可以隐藏曲线并查看缩放到直方图数据的图表。

4

2 回答 2

6

PlotLines并且plotBands回来了,因为当轴再次显示回来时,它还应该渲染所有 plotLines 和 plotBands。那么你就不能简单地控制 plotLines 和 plotBands。如何解决?不要隐藏/显示 SVG 元素,而是删除 plotLines/plotBands 或根据需要添加它们。这是您的解决方案:http: //jsfiddle.net/FnhrV/19/

于 2013-12-17T13:19:43.580 回答
0

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

http://jsfiddle.net/jlbriggs/FnhrV/

    min:-3,
    max:3,
    showEmpty: true,
于 2013-02-22T13:33:33.150 回答