Я отображаю некоторые данные на линейном графике, рабочий пример можно найти здесь .
Это работает довольно хорошо, но для большого объема данных горизонтальное панорамирование очень медленное,Вы можете попытаться увеличить график и затем переместить его влево или вправо.
Сначала я масштабирую горизонтальную шкалу:
var t = d3.event.transform;
xScale.domain(t.rescaleX(xScaleTimeline).domain());
Затем я перерисовываю строки:
apiData.sensors.forEach(function (s, i) {
chart.select("#" + s.name).attr("d", lines[i]);
});
И для диаграммы рассеяния:
circles.call(function (c) {
c.attr("cx",
function (d) {
return xScale(d.t);
});
});
Есть идеи, как это ускорить? Одним из вариантов может быть изменение масштаба только данных, видимых при текущем уровне масштабирования, но это не выглядит ни простым, ни элегантным.