我有一个系列,在该系列中我只显示自定义数据标签,仅用于系列中的特定值。在窗口调整大小时,数据标签将从图表中消失。有没有解决这个问题的方法。 在此先感谢。
我的代码:
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 : []
};
`
在窗口调整大小之前:
最大化窗口后:
答案 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();
});