D3.js Force-layout ограничивает координату оси x для временных рядов

Я пытаюсь создать диаграмму, которая представляет собой временной ряд событий. События могут иметь эффекты, которые являются новыми событиями. Любое одно событие может иметь несколько узлов, влияющих на него. Это превращает данные в график.

var events = { 
    0: {effects: [4, 5], year: 2000},
    1: {effects: [4, 5], year: 2001},
    2: {effects: [6, 7], year: 2004},
    3: {effects: [6, 7], year: 2005},
    4: {effects: [8], year: 2008},
    5: {effects: [9], year: 2008},
    6: {effects: [10], year: 2009},
    7: {effects: [9]: year: 2009},
    8: {effects: [], year: 2010},
    9: {effects: [], year: 2011},
   10: {effects: [], year: 2013},
   11: {effects: [], year: 2014}
}

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

Я попытался использовать макет дерева D3.js, но столкнулся с проблемой, когда один узел имеет несколько родителей. Я пытался использовать силовой макет, но не мог понять, как ограничить макет, чтобы позиция x была функцией года, когда произошло событие.

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

Заранее спасибо!


person Shailesh    schedule 17.02.2014    source источник
comment
Вот пример, когда только позиция y устанавливается силой макет. Вы в основном игнорируете все, что не должно быть установлено в функции .tick().   -  person Lars Kotthoff    schedule 18.02.2014
comment
см. stackoverflow.com/a/20643596/214446   -  person mb21    schedule 29.08.2014