Highcharts - 行系列中的CUSTOM DATA LABELS在窗口调整大小时消失

时间:2016-11-07 11:16:22

标签: javascript jquery html highcharts

我有一个系列,在该系列中我只显示自定义数据标签,仅用于系列中的特定值。在窗口调整大小时,数据标签将从图表中消失。有没有解决这个问题的方法。 在此先感谢。

我的代码:

var options = {
            chart : {
                renderTo : 'container',
                type : 'line',
            },

        xAxis : {
            spacingTop: 50,
            spacingBottom: 25,
            categories : []
        },

        yAxis : [ {
            min: 0,
            minRange: 0.1
        } ],
        plotOptions: {
            line:{
                dataLabels: {
                    enabled:true,
                    defer:false,
                    formatter: function() {
                        count++;
                        if(this.y)
                            if(batch_info[count]!=0)
                                return batch_info[count];
                    }
                }
            }
        },
        series : []
    };

`

在窗口调整大小之前:

enter image description here

最大化窗口后:

enter image description here

2 个答案:

答案 0 :(得分:4)

每次重绘/调整大小时都会调用格式化程序回调,因此最可能的情况是您不重置count变量,因此它会访问不存在的值,例如: batch_info[101]时的batch_info.length === 100

您可以使用模运算符来避免它:

formatter: function () {
                    count++;
                  return batch_info[count % batch_info.length];
                }

示例:http://jsfiddle.net/ck8zhLmj/1/

但我建议重构代码并删除count变量的用法。相反,您可以在系列中包含有关数据标签的信息。数据或点对象。

答案 1 :(得分:0)

解决方案可能是在调整大小后重新加载highcharts函数。

 $(window).resize(function(){
     drawVisualization();
 });