【发布时间】:2014-07-15 21:19:15
【问题描述】:
我经常需要展示具有很多点的系列,并且我想为一些点设置 dataLabels。这很好用,但是当系列有太多点时,dataLabel 在开始时是不可见的。当我放大系列时,我可以看到它显示正确。
所以我的问题是:有没有办法始终为这样的系列显示 dataLabel?
这是我的 JSFiddle:http://jsfiddle.net/Charissima/9aB6B/ 51 处的数据标签。
$(function() {
var myData = [];
for (var i = 0; i < 50; i++) {
myData.push(i + Math.random() * 3);
}
myData.push(51);
for (var i = 52; i < 400; i++) {
myData.push(i + Math.random() * 3);
}
chart = $('#container').highcharts('StockChart', {
chart : {
zoomType: 'x',
events : {
load : function() {
myChart = this;
mySeries = this.series[1];
},
}
},
plotOptions: {
series: {
dataLabels: {
enabled: true,
formatter: setDataLabels
}
}
},
series: [
{
name: 'Label51',
id : 'dataseries',
color: 'blue',
data: myData
}
]
});
function setDataLabels() {
if (this.y == 51) {
return this.y;
} else {
return null;
}
}
});
【问题讨论】:
-
嗯,你的例子对我来说很好。它在 51 处显示 dataLabel。但是,这可能是由
dataGrouping引起的。尝试禁用它,我们会看到。 -
就是这样!感谢您快速而完美的回答。
标签: javascript highcharts highstock