указывает на линию в d3.js

m создаю линейный график в d3.js следующим образом:

var line = d3.svg.line()
    .interpolate("basis")
    .x(function(d) { return x(d.date); })
    .y(function(d) { return y(d.temperature); });

Затем я хочу поставить точки на точках данных линии следующим образом:

var points = svg.selectAll(".point")
        .data(cities1[0].values)
      .enter().append("svg:circle")
         .attr("stroke", "black")
         .attr("fill", function(d, i) { return "black" })
         .attr("cx", function(d, i) { return x(d.date) })
         .attr("cy", function(d, i) { return y(d.temperature) })
         .attr("r", function(d, i) { return 3 });

Результат не тот, который я ожидаю:

Я тогда меняю интерполировать (основа») для интерполяции ("кардинал») и получить то, что я хочу:

Почему я получил неправильный результат с базой? Как я могу нарисовать точные точки с базой тоже?

РЕДАКТИРОВАТЬ:Похожий (неотвеченный вопрос. Проверять, выписыватьсяэто jsfiddle, Это будет работать только при смене интерполяции с базового на кардинальный (или другой) режим. Но у кардинала есть проблема в том, что он не учитывает максимальную высоту графа. Что я'я ищу объяснение того, почему некоторые режимы интерполяции мешают расположить точки в нужном месте (и почему кардинал не учитывает максимальную высоту).

Ответы на вопрос(2)

Ваш ответ на вопрос