标签切换和调整大小后堆叠列上的额外标签

时间:2015-11-17 17:03:41

标签: jquery highcharts data-visualization highstock

我正在开发一个使用Highstock来显示多个系列的应用程序。这些系列是堆叠的。

有很多数据点,数据标签可能会变得混乱。我添加了一个复选框,使用以下内容切换stackLabels.enabled的{​​{1}}属性:

yaxis

这可以按预期工作。被问及时会隐藏,并在被问到时显示。

我面临的问题是,在将属性设置为function toggleDataLabels(enableDataLabels) { var chart = $('#container').highcharts(); chart.yAxis.forEach(function (axis) { axis.update({ stackLabels: { enabled: enableDataLabels } }); }); }; 然后返回false之后,图表会调整大小,画布上会添加一些额外的数据标签。< / p>

激活此错误后,您可以通过图例隐藏所有系列,并且标签仍在画布上。

我试过了:
- 在堆栈设置为true后禁用每个系列上的数据标签 - 以编程方式设置/调用重绘,重排,设置
- x和y上的axis.update - 和其他一些hacky方法

我所尝试过的任何内容都无法让这些额外的数据标签消失。

查看这个小提琴http://jsfiddle.net/d84dgrs9/(有点粗糙,但它得到了重点)
产生错误的步骤:
- 选择:距离量程选择器1米以减少杂乱 - 取消选中“切换数据标签”以隐藏数据标签
- 检查切换数据标签以显示数据标签
- 使用垂直滑块调整窗格大小
繁荣!各种额外的标签。

任何见解都会令人惊叹。也许这是向highcharts bug追踪器报告的内容。

1 个答案:

答案 0 :(得分:1)

奇怪的问题。我认为它可能值得作为一个错误报告。

无论如何,我找到了一个解决方法。如果您使用CSS隐藏/显示标签而不是高图选项,则额外的标签不会再出现。作为额外的奖励,它的工作速度要快得多。

function toggleDataLabels(enableDataLabels) {
    if (enableDataLabels) 
        $('g.highcharts-stack-labels').css('visibility', 'visible');
    else 
        $('g.highcharts-stack-labels').css('visibility', 'hidden');
};

JSFiddle