【问题标题】:Highcharts - Issue with showing and hiding plot lines and bands on legendItemClickHighcharts - 在 legendItemClick 上显示和隐藏绘图线和带的问题
【发布时间】:2013-02-21 21:32:19
【问题描述】:

我有一个图表,上面有几个 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 轴的范围。 一旦发生这种情况,每次隐藏它们时,这两行都会重新出现,并且单击各种图例项会导致各种不应该的隐藏/可见状态。

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

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

杰米

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

【问题讨论】:

  • 有人...?关于如何克服这个问题的任何提示?
  • 这是否意味着没有解决方案?

标签: javascript jquery highcharts


【解决方案1】:

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

【讨论】:

  • 效果很好!除此之外,还需要注意 yAxis 的销毁和更新,否则它可能无法按预期工作......
【解决方案2】:

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

http://jsfiddle.net/jlbriggs/FnhRV/

    min:-3,
    max:3,
    showEmpty: true,

【讨论】:

  • 这是我考虑的第一个选项,但如果我隐藏曲线,我真的希望能够将 x 轴缩放到直方图数据。在给定的示例中,缩放差异很小,但在许多情况下差异很大。在这些情况下,不允许用户隐藏曲线并独立查看列将严重损害可用性。
  • 有人有什么建议吗?我被卡住了,需要以某种方式使其正常运行...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多