Преобразование treemap
Преобразование treemap рекурсивно разбивает область на прямоугольники, площади которых пропорциональны значениям соответствующих узлов.
Преобразование работает со специальными объектами узлов дерева, созданными предшествующим преобразованием nest или stratify. Исходный объект данных доступен в поле data узла. Используется библиотека d3-hierarchy.
Пример
Параметры преобразования
| Свойство | Тип | Описание |
|---|---|---|
| field | Field | Поле с числовым значением узла. Сумма значений узла и потомков доступна как свойство value объекта узла. Поле определяет размер узла; если оно не задано, учитывается число листовых узлов. |
| sort | Compare | Функция сравнения для сортировки дочерних узлов одного родителя. Она получает объекты узлов дерева, а не исходные объекты данных. |
| method | String | Метод размещения: squarify (по умолчанию), resquarify, binary, dice, slice или slicedice. После первого расчёта resquarify сохраняет взаимное положение узлов даже при изменении их размеров. |
| padding | Number | Задаёт одинаковые значения paddingInner и paddingOuter. |
| paddingInner | Number | Отступ между соседними дочерними узлами одного родителя (по умолчанию 0). |
| paddingOuter | Number | Отступ между краями родительского узла и дочерними узлами (по умолчанию 0). Задаёт одинаковые значения paddingTop, paddingRight, paddingBottom и paddingLeft. |
| paddingTop | Number | Отступ между верхним краем узла и его дочерними узлами. |
| paddingRight | Number | Отступ между правым краем узла и его дочерними узлами. |
| paddingBottom | Number | Отступ между нижним краем узла и его дочерними узлами. |
| paddingLeft | Number | Отступ между левым краем узла и его дочерними узлами. |
| ratio | Number | Целевое соотношение сторон для squarify или resquarify. По умолчанию используется золотое сечение: φ = (1 + sqrt(5)) / 2. |
| round | Boolean | Округлять ли вычисленные координаты узлов (по умолчанию false). |
| size | Number[ ] | Размер области размещения в виде массива [width, height]. |
| as | String[ ] | Имена выходных полей с результатом размещения (по умолчанию ["x0", "y0", "x1", "y1", "depth", "children"]). Первые четыре поля задают границы прямоугольника; depth — глубину в дереве, children — число дочерних узлов. |
Использование
{
"type": "treemap",
"field": "value",
"method": "resquarify",
"ratio": 1,
"paddingInner": 0,
"paddingOuter": 2,
"size": [{"signal": "width"}, {"signal": "height"}]
}
Рассчитывает мозаичную диаграмму устойчивым методом resquarify с квадратным соотношением сторон (1) и внешним отступом 2 пикселя между родительскими и дочерними узлами. Используется вся ширина и высота представления.