Преобразование contour
Примечание: начиная с Vega ≥ 5.8, это преобразование устарело и может быть удалено в одном из будущих основных выпусков. Для похожих задач с большей гибкостью используйте isocontour и kde2d.
Преобразование contour описывает пространственное распределение значений набором дискретных уровней. Каждая контурная линия — изолиния постоянного значения. Часто так показывают оценку плотности двумерных точечных данных: контуры удобнее для очень больших наборов точек.
На выходе создаётся новый поток геометрий GeoJSON. Их можно изобразить с помощью geoshape или geopath. Преобразование объединяет возможности методов contours и densityContour библиотеки d3-contour.
Параметры преобразования
| Свойство | Тип | Описание |
|---|---|---|
| size | Number[ ] | Обязательно. Размеры области [width, height] для расчёта контуров. При заданном values это размеры входных данных; при оценке плотности — размеры выходного представления в пикселях. |
| values | Number[ ] | Массив чисел, представляющий сетку значений шириной width и высотой height. Если не задан, контуры строятся по ядерной оценке плотности входных данных. |
| x | Field | Поле с координатой X в пикселях для оценки плотности. |
| y | Field | Поле с координатой Y в пикселях для оценки плотности. |
| weight | Field | Поле с весом точки при оценке плотности. Если не задано, вес каждой точки равен 1. ≥ 4.0 |
| cellSize | Number | Размер ячейки для расчёта плотности контуров. |
| bandwidth | Number | Ширина ядра при оценке плотности. |
| smooth | Boolean | Сглаживать ли контурные полигоны линейной интерполяцией (по умолчанию true). При ядерной оценке плотности параметр игнорируется. |
| thresholds | Number[ ] | Массив явных пороговых значений контуров. Если задан, параметры count и nice игнорируются. |
| count | Number | Желаемое число контуров. Игнорируется при заданном thresholds. |
| nice | Boolean | Округлять ли пороговые значения до удобных для чтения чисел (по умолчанию false). При этом число порогов может отличаться от точного значения count. |
Использование
Пример строит 10 уровней контуров двумерной ядерной оценки плотности. Координаты точек в пикселях берутся из полей x_value и y_value, а сигналы width и height задают область расчёта.
{
"type": "contour",
"x": "x_value",
"y": "y_value",
"size": [{"signal": "width"}, {"signal": "height"}],
"count": 10
}