2013-04-08 3 views
2

Я пытаюсь создать ориентированный на силу макет, в котором подключенные узлы имеют свой собственный внутренний макет, который не просто рекурсивный силовой макет (который, я считаю, был бы возможен с помощью иерархического макета). «Внутренний» макет был бы обычным, но, для иллюстрации, предположим, я хотел, чтобы узлы, внутри, имели макет раздела. Это возможно?Возможно ли разместить один (или более) макет (-ы) внутри другого, другого макета (-ов) в d3?

+0

Что вы сейчас делали? Вы пытались просто добавить этот макет в качестве узла? –

+0

@ChrisJamesC: Я еще ничего не пробовал. Я не уверен, как вы могли бы добавить макет в качестве узла. Если бы я выполнил команду selectAll() верхнего уровня, введите(). Append() ... и затем сделайте selectAll(). Enter(). Append() на узлах, которые я только что создал? Эта часть имеет для меня достаточный смысл, я могу совать, но механизм компоновки кажется более предписывающим в отношении таких иерархий. – thomasqbrady

+0

@Lars: Это не совсем полезно. – thomasqbrady

ответ

1

Моего вопроса был действительно двояк:

  1. вы можете стянуть иметь больше чем один стиль макета (например, пузырь график внутри сила-ориентированного граф) в разумном пути с D3, или D3 - неправильный инструмент для такой вещи, и
  2. Можете ли вы использовать макеты D3 для каждого из этих макетов, или вам нужно делать все по-своему.

В конце концов, дизайн был изменен и больше не использовался для этого нечетного сценария. Хотя я гораздо лучше знаком с D3, я думаю, что могу ответить.

Да. Это может быть сделано. Каждый макет - это собственный дискретный объект с собственными данными для работы и может быть предоставлен собственный элемент DOM для заполнения. Создание двух макетов, которые могли бы совместно использовать одни и те же данные и выходы DOM, вероятно, работало бы, если бы вы могли управлять взаимодействием между ними (чтобы убедиться, что только один раз переопределяет изменения, если это необходимо).

То, что я знаю, что вы можете сделать наверняка вручную манипулировать ничего, что D3 делает. Во время разработки, на самом деле, у меня было два макета на одной странице, подумайте об этом. Я выкладывал половину графика с заранее определенными координатами x/y и позволял остальным располагаться с помощью направленной силы. Этот первый набор, размещенные вручную узлы, мог быть помещен какой-то другой логикой, чем предварительно определенные координаты, и функциональность была бы примерно одинаковой.

Смежные вопросы