Я создал многострочную диаграмму с простой анимацией. В начале данных нет, а после нажатия кнопки эмулируются новые значения и строка "переместиться" ушла. Движение анимируется с помощью «сдвига».
Проблема возникает, когда линии «заполняют» всю область графика (это означает, что для всех значений x есть значения y), а затем линии анимируются по-другому. Похоже, что значения y анимированы по кривой, а не сдвинуты влево.
Анимация работает хорошо для обеих осей:
svg.selectAll("g .x.axis")
.transition()
.duration(500)
.ease("linear")
.call(xAxis);
svg.selectAll("g .y.axis")
.transition()
.duration(500)
.ease("linear")
.call(yAxis);
И не для строк (мне очень помог этот код)
svg.selectAll("g .city path")
.data(processedData).transition().duration(500)
.ease("linear")
.attr("d", function(d, i) { return line(d.values); })
.attr("transform", null);
Скрипт доступен здесь.
Спасибо за помощь.