Преобразование 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.