2012-06-28 2 views
1

Я пытаюсь использовать d3.js для отображения treemap, где значение родителя может быть больше, чем сумма его детей. Например, скажем, я визуализую строки кода в иерархии пространства имен. Пространство имен B и C являются дочерними элементами A и по 1 строке. Пространство имен A - это 3 строки - 1 строка для B и C и 1 строка для себя. Таким образом, только B и C не определяют размер A.d3.js - Карта, где значение родителя больше суммы его детей

Я хочу отобразить это свойство на treemap. В частности, родительский элемент должен быть прямоугольником сверху дочерних прямоугольников, размер которых пропорционален. Если родительский элемент не добавляет дополнительный размер, родительский объект все равно должен отображаться, но при минимальном размере (возможно, крошечный прямоугольник, охватывающий верхнюю часть дочерних элементов, чтобы указать родительское имя).

В настоящее время узлы значений детей просто распространяются по иерархии без учета фактического размера нелистовых узлов.

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

спасибо.

ответ

1

Возможно, вы захотите попробовать pull request #574, который позволяет внутренним узлам иерархии иметь значение.

В противном случае вы можете добавить невидимые фиктивные узлы к своим данным, которые содержат дополнительное значение, связанное с внутренними узлами, но не учитываются их дочерними элементами. Когда вы создаете treemap, вы можете filter этих узлов, чтобы они не отображались (хотя они и являются частью макета). Или вы можете установить их стиль для отображения: none.

+1

Я перепутал с запросом на тяну, но не получил поведение, которое ожидал, поэтому я пошел по маршруту фиктивного узла, и он работал хорошо! Я собрал здесь небольшой пример devforrest.com/examples/treemap/treemap.php. Спасибо за ответ! –

+0

Спасибо за ваш пример! Это избавило меня от необходимости повторять то же самое :) – ashgromnies

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