2016-09-20 12 views
3

Я не совсем уверен, как это описать. Картинка в основном объясняет это: cardinalD3 интерполированная кривая линии janky и удвоение обратно на себя

Потерянные точки - это точки на кривой. Вы можете видеть, что линия удваивается сама по себе и перекрывается. Я просто устанавливаю его для:

var lineGenerator = d3.svg.line() 
    .x(function(d) { 
     return xScale(d.date_spaced); 
    }) 
    .y(function(d) { 
     return yScale(d.score); 
    }) 
    .interpolate('cardinal'); 

И каждый пункт только набирается один раз. Что я делаю не так?

И с монотонными:

monotone

и линейные: enter image description here

+0

У меня такая же проблема ... Я надеюсь на подсказку, чтобы решить эту проблему. –

ответ

1

Try увеличить напряжение:

var lineGenerator = d3.svg.line() 
    .x(function(d) { 
     return xScale(d.date_spaced); 
    }) 
    .y(function(d) { 
     return yScale(d.score); 
    }) 
    .interpolate('cardinal').tension(0.95); 

Кроме того, попробуйте другие вставленные (и значения напряженности, но просто для «пучка» и «кардинала»), пока вы не найдете то, что соответствует вашим целям.

+0

Я попытался увеличить напряжение, но это только свести к минимуму проблему, она не избавилась от нее. Если я хочу избавиться от проблемы, мне нужно полностью удалить интерполяцию и просто иметь прямую линию. – morgoe

+0

Вы пытались «расслоить» с высоким напряжением? Кроме того, вы пробовали другие интерполяции (монотонно, основа ...)? –

+0

Bundle and Basis не хорошо, потому что мне нужна линия, чтобы пересечь точки. Монотон имеет ту же проблему (я добавил изображение к своему OP) – morgoe

0

У меня была такая же проблема, используя интерполяцию кардинальных кривых, линия возвращалась назад каждый раз. Установив его на MonotoneX, вместо этого я дал мне то, что хотел.

var lineGenerator = d3.svg.line() 
    // ... 
    .interpolate('cardinal'); 

cardinal

var lineGenerator = d3.svg.line() 
    // ... 
    .interpolate('monotoneX'); 

monotoneX

Вы можете прочитать все о различных видах интерполяций в d3 here. (Осторожно, много теории математики связано ...)