Преобразования
Преобразования обрабатывают поток данных: фильтруют записи, вычисляют новые поля или создают новые потоки. Обычно их задают в массиве transform определения данных. Преобразования, которые не фильтруют и не создают объекты данных, также можно указать в массиве transform определения графического примитива, чтобы обработать данные после визуального кодирования.
В следующем примере определяется набор данных, значения которого сначала фильтруются, а затем размещаются с накоплением, например для столбчатой диаграммы с накоплением:
{
"data": [
{
"name": "table",
"transform": [
{ "type": "filter", "expr": "datum.value > 5" },
{ "type": "stack", "field": "value", "groupby": ["category"] }
]
}
]
}
Для каждого преобразования обязательно свойство type с его именем. Преобразования, которые помимо основного результата создают значение (в частности bin, extent и crossfilter), могут содержать свойство signal. Оно задаёт уникальное имя сигнала, с которым связывается значение состояния преобразования.
Основные преобразования
Преобразования для обработки потоков объектов данных.
aggregate— группирует и обобщает данные потока.bin— разбивает числовые значения на равные интервалы.collect— собирает и сортирует все объекты потока.countpattern— подсчитывает частоту шаблонов в текстовых строках.cross— вычисляет декартово произведение потока данных с самим собой.density— создаёт значения из вероятностного распределения.dotbin— группирует значения по плотности для точечной диаграммы. ≥ 5.7extent— находит минимальное и максимальное значения в потоке данных.filter— фильтрует поток по выражению-предикату.flatten— превращает элементы поля-массива в отдельные объекты данных. ≥ 3.1fold— сворачивает выбранные поля данных в свойства key и value.formula— добавляет к объектам вычисляемые поля по формуле.identifier— присваивает объектам данных уникальные ключи.kde— оценивает сглаженную плотность числовых значений. ≥ 5.4impute— восполняет отсутствующие значения.joinaggregate— добавляет к объектам вычисленные агрегированные значения.loess— строит сглаженную линию тренда методом локальной регрессии. ≥ 5.4lookup— дополняет объекты значениями, найденными по ключу в другом потоке.pivot— превращает уникальные значения в новые агрегированные поля. ≥ 3.2project— создаёт производные объекты с выбранным набором полей.quantile— вычисляет выборочные квантили входного потока данных. ≥ 5.7regression— подбирает регрессионные модели для сглаживания и прогноза значений. ≥ 5.4sample— случайным образом выбирает объекты из потока.sequence— создаёт новый поток с последовательностью чисел.timeunit— группирует значения даты и времени по временным интервалам. ≥ 5.8window— вычисляет показатели по упорядоченным группам, включая ранги и накопительные итоги.
Географические и пространственные преобразования
Преобразования для пространственных данных, картографических проекций и географической разметки.
contour— устарело. Представляет пространственное распределение дискретными уровнями.geojson— объединяет географические данные в коллекцию объектов GeoJSON.geopath— преобразует объекты GeoJSON в строки контуров SVG.geopoint— преобразует координаты (долгота, широта) в точки (x, y).geoshape— преобразует объекты GeoJSON в фигуры для программной отрисовки.graticule— создаёт координатную сетку для карт.heatmap— создаёт изображения тепловых карт по растровым данным. ≥ 5.8isocontour— строит изолинии для растровых данных. ≥ 5.8kde2d— оценивает двумерную плотность и возвращает растровую сетку. ≥ 5.8
Преобразования размещения
Преобразования для вычисления координат элементов в разных вариантах размещения.
force— рассчитывает размещение с помощью физического моделирования сил.label— вычисляет положение и прозрачность подписей графика. ≥ 5.16linkpath— прокладывает линии связей между узлами.pie— вычисляет угловое размещение для круговых и кольцевых диаграмм.stack— размещает группы значений с накоплением.voronoi— строит диаграмму Вороного для набора точек.wordcloud— размещает текстовые строки в облаке слов.
Иерархические преобразования
Преобразования для обработки и размещения иерархических (древовидных) данных.
nest— создаёт дерево, группируя объекты по значениям полей.stratify— создаёт дерево по явно заданным значениям ключей.treelinks— создаёт объекты данных для связей в дереве.pack— размещает дерево внутри вложенных окружностей.partition— размещает дерево по принципу пространственного соседства узлов.tree— размещает дерево в виде диаграммы «узлы — связи».treemap— размещает дерево путём рекурсивного деления области на прямоугольники.
Преобразования перекрёстной фильтрации
Преобразования для быстрой инкрементальной фильтрации многомерных данных.
crossfilter— поддерживает маску фильтра для многомерных запросов.resolvefilter— превращает результат перекрёстной фильтрации в отфильтрованные потоки данных.
Пользовательские преобразования
Помимо перечисленных, к Vega можно добавлять собственные преобразования через API расширения. Подробнее см. раздел «Преобразования» в документации API.