Указване на nodeSize за всеки възел поотделно в D3.js дървовидно оформление

Как да задам nodeSize за D3 дървовидното оформление за всеки възел поотделно? В моя случай имам дърво, съдържащо възли с различни размери и настройката d3.layout.tree().nodeSize([300, 200]); води до странно разстояние, когато ширината на възлите варира. nodeSize изглежда е една от малкото D3 функции, които не приемат функция като параметър. Най-близкото нещо, което намерих, беше функцията за разделяне, но тя всъщност не решава проблема.

Има ли начин или трябва да изчисля позициите ръчно?


person Jan Hettenkofer    schedule 07.06.2015    source източник


Отговори (1)


Защо функцията за разделяне не реши проблема ви?

Получавате два възела като параметри на функцията за разделяне. Ако зададете nodeSize([1, 200]) и изчислите действителната ширина на двата възела във функцията за разделяне, можете да добавите подходящо разделяне.

.separation(function(a, b) {
  var totalWidth = a.width + b.width;
  return (totalWidth / 2) + 10;
})

Може би имате нужда от малко повече, за да изчислите ширината, но без вашия код не мога да позная как се изчислява ширината на вашите възли.

person jhinzmann    schedule 07.06.2015