我想要一条只显示所选点的线(它们实际上是预选的)。
在此示例中 - http://jsfiddle.net/jhG8j/ - 您可以在单击按钮时显示所选点,但只有在已显示所有其他点(标记:已启用)时才能使其生效。有没有办法从一条简单的线开始,然后只显示选定的点?
以下是来自jsfiddle的相关代码:
$(function () {
$('#container').highcharts({
plotOptions: {
line: {
marker: {
enabled: true
}
}
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
// button handler
var chart = $('#container').highcharts(),
i = 0;
$('#button').click(function() {
if (i == chart.series[0].data.length) {
i = 0;
}
chart.series[0].data[i].select(true, true);
i++;
});
});
答案 0 :(得分:3)
你可以通过创建两个单独的系列来逃避这一点。为了使系列看起来像是一个折线图,您需要在数据中添加一些空值,并确保第一个系列的最后一个数据点是以下系列的第一个数据点。 / p>
使用您提供的jsfiddle,更新代码如下:
$(function () {
$('#container').highcharts({
plotOptions: {
line: {
}
},
series: [{
data: [29.9, 71.5, 106.4] ,
marker: {
enabled: true
} ,
color: '#000000'
},{
data: [null, null , 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] ,
marker: {
enabled: false ,
states: {
hover: {
enabled: false
} ,
states: {
select: false
}
}
},
color: '#000000'
}]
});
// button handler
var chart = $('#container').highcharts(),
i = 0;
$('#button').click(function() {
if (i == chart.series[0].data.length) {
i = 0;
}
chart.series[0].data[i].select(true, true);
i++;
});
});