Преобразование tree
Преобразование tree рассчитывает расположение узлов и связей иерархического дерева. Поддерживаются кластерная схема, например дендрограмма, и компактная схема tidy по методу Рейнгольда и Тилфорда с последующими исправлениями Буххайма и соавторов. Координаты x и y задают условную систему: например, если считать x углом, а y радиусом, получится радиальная схема.
Преобразование работает со специальными объектами узлов дерева, созданными предшествующим преобразованием nest или stratify. Исходный объект данных доступен в поле data узла. Используется библиотека d3-hierarchy.
Пример
Параметры преобразования
| Свойство | Тип | Описание |
|---|---|---|
| field | Field | Поле с числовым значением узла. Сумма значений узла и всех его потомков доступна как свойство value объекта узла. Если поле не задано, учитывается число листовых узлов. |
| sort | Compare | Функция сравнения для сортировки дочерних узлов одного родителя. Она получает объекты узлов дерева, а не исходные объекты данных. |
| method | String | Метод размещения: tidy (по умолчанию) или cluster. |
| separation | Boolean | ≥ 4.3 Раздвигать ли узлы по степени родства. При true (по умолчанию) узлы разных ветвей располагаются дальше друг от друга, чем узлы с общим родителем. При false расстояния одинаковы, как в обычной дендрограмме. |
| size | Number[ ] | Размер области размещения в виде массива [width, height]. |
| nodeSize | Number[ ] | Размер каждого узла в виде массива [width, height]. |
| as | String[ ] | Имена выходных полей с результатом размещения (по умолчанию ["x", "y", "depth", "children"]). x и y — координаты, depth — глубина в дереве, children — число дочерних узлов. |
Использование
{
"type": "tree",
"method": "tidy",
"size": [{"signal": "width"}, {"signal": "height"}]
}
Рассчитывает дерево методом tidy во всю ширину и высоту представления.