如何在数据时禁用标记> 1插入新数据后?这让我很困惑..
在这种情况下,我想制作一个成长图表(图表示例来源:CDC-年龄百分位数的权重)
我应该使用它吗?
if(dataChartWeight.length > 1)
{
chart.series[19].update({
marker: {
enabled: false
}
}, true);
}
if(dataChartLength.length > 1)
{
chart.series[18].update({
marker: {
enabled: false
}
}, true);
}
答案 0 :(得分:0)
通常不能为单点禁用标记,但您可以使用隐藏SVG元素的变通方法。
$.each(chart.series[0].data, function (point, i) {
if(this.y <10) {
this.graphic.destroy();
}
});
答案 1 :(得分:0)
您可以隐藏标记,而不是尝试禁用标记...
marker: {
radius:0,
lineWidth:0,
}
答案 2 :(得分:0)
塞巴斯蒂安的answer很好但是如果您使用多个系列,使用自定义工具提示或重新绘制图表时,修复会变得有点复杂。而不是使用destroy();在图形上,我用hide();
我将它包装在一个函数中,然后在第一次加载时调用该函数,并在重绘事件上调用该函数。它首先循环遍历每个系列,然后遍历数据以“隐藏”标记,其中零作为值。
$(function () {
function hideZeroDots(chart) {
$.each(chart.series, function (series) {
$.each(chart.series[series].data, function () {
if(this.y === 0 && this.graphic) {
this.graphic.hide();
}
});
});
}
$('#container').highcharts({
title: {
text: 'Hide Zero Dots'
},
chart: {
events: {
redraw: function () {
hideZeroDots(this);
}
}
},
tooltip: {
useHTML: true,
hideDelay: 0,
shared: true,
backgroundColor: '#fff',
borderColor: '#eee',
shadow: false,
crosshairs: {
width: 2,
color: 'gray',
dashStyle: 'shortdot'
}
},
series: [{
name: 'responses',
data: [0, 0, 0, 0, 0, 0, 36.5, 33.3, 0, 23.9, 0]
}, {
name: 'views',
data: [0, 0, 0, 0, 0, 0, 26.5, 23.3, 0, 13.9, 0]
}]
}, hideZeroDots);
});
请参阅Demo