我正在开发一个使用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追踪器报告的内容。
答案 0 :(得分:1)
奇怪的问题。我认为它可能值得作为一个错误报告。
无论如何,我找到了一个解决方法。如果您使用CSS隐藏/显示标签而不是高图选项,则额外的标签不会再出现。作为额外的奖励,它的工作速度要快得多。
function toggleDataLabels(enableDataLabels) {
if (enableDataLabels)
$('g.highcharts-stack-labels').css('visibility', 'visible');
else
$('g.highcharts-stack-labels').css('visibility', 'hidden');
};