Преобразование pack

Преобразование pack строит диаграмму вложенных кругов, передающую иерархию через включение одних фигур в другие. Размер кругов листовых узлов кодирует количественный показатель. Внешние круги приблизительно показывают суммарный размер поддерева, но из-за пустого пространства между кругами сравнивать их точно нельзя; точное сравнение возможно только для листьев.

Преобразование работает со специальными объектами узлов дерева, созданными предшествующим преобразованием nest или stratify. Исходный объект данных доступен в поле data узла. Используется библиотека d3-hierarchy.

Пример

Параметры преобразования

Свойство Тип Описание
field Field Поле с числовым значением узла. Сумма значений узла и всех его потомков доступна как свойство value объекта узла. Если поле не задано, учитывается число листовых узлов. При radius равном null поле определяет размер узла.
sort Compare Функция сравнения для сортировки дочерних узлов одного родителя. Она получает объекты узлов дерева, а не исходные объекты данных.
size Number[ ] Размер области размещения в виде массива [width, height].
radius Field Поле с явно заданным радиусом узла. При null (по умолчанию) радиус листового круга рассчитывается по значению поля field.
padding Number Примерный отступ между упакованными кругами (по умолчанию 0).
as String[ ] Имена выходных полей с результатом размещения (по умолчанию ["x", "y", "r", "depth", "children"]). x и y — координаты, r — радиус узла, depth — глубина в дереве, children — число дочерних узлов.

Использование

{
  "type": "pack",
  "field": "value",
  "padding": 4,
  "size": [{"signal": "width"}, {"signal": "height"}]
}

Рассчитывает упаковку кругов с отступом 4 пикселя между узлами во всю ширину и высоту представления. Размер листовых узлов пропорционален полю value.