Вы можете предварительно обработать ваши данные и вычислить y
значения для второй серии:
var stages = [
[0, 10],
[2, 30],
[5, 15],
[10, 12]
],
checkpoints = [1, 3, 4, 7],
j = 1,
i = 0;
for (i; i < checkpoints.length; i++) {
if (checkpoints[i] < stages[j][0]) {
checkpoints[i] = [checkpoints[i], calculateY(i, j)];
} else {
for (j; j < stages.length; j++) {
if (checkpoints[i] < stages[j][0]) {
checkpoints[i] = [checkpoints[i], calculateY(i, j)];
break;
}
}
}
}
function calculateY(i, j) {
var difference,
step;
difference = stages[j][1] - stages[j - 1][1];
step = difference / (stages[j][0] - stages[j - 1][0]);
return stages[j - 1][1] + step * (checkpoints[i] - stages[j - 1][0]);
}
Highcharts.chart('container', {
series: [{
data: stages
}, {
type: 'scatter',
data: checkpoints
}]
});
Демонстрационная версия: http://jsfiddle.net/BlackLabel/83ankjpf/