Преобразования

Преобразования обрабатывают поток данных: фильтруют записи, вычисляют новые поля или создают новые потоки. Обычно их задают в массиве 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.7
  • extent — находит минимальное и максимальное значения в потоке данных.
  • filter — фильтрует поток по выражению-предикату.
  • flatten — превращает элементы поля-массива в отдельные объекты данных. ≥ 3.1
  • fold — сворачивает выбранные поля данных в свойства key и value.
  • formula — добавляет к объектам вычисляемые поля по формуле.
  • identifier — присваивает объектам данных уникальные ключи.
  • kde — оценивает сглаженную плотность числовых значений. ≥ 5.4
  • impute — восполняет отсутствующие значения.
  • joinaggregate — добавляет к объектам вычисленные агрегированные значения.
  • loess — строит сглаженную линию тренда методом локальной регрессии. ≥ 5.4
  • lookup — дополняет объекты значениями, найденными по ключу в другом потоке.
  • pivot — превращает уникальные значения в новые агрегированные поля. ≥ 3.2
  • project — создаёт производные объекты с выбранным набором полей.
  • quantile — вычисляет выборочные квантили входного потока данных. ≥ 5.7
  • regression — подбирает регрессионные модели для сглаживания и прогноза значений. ≥ 5.4
  • sample — случайным образом выбирает объекты из потока.
  • sequence — создаёт новый поток с последовательностью чисел.
  • timeunit — группирует значения даты и времени по временным интервалам. ≥ 5.8
  • window — вычисляет показатели по упорядоченным группам, включая ранги и накопительные итоги.

Географические и пространственные преобразования

Преобразования для пространственных данных, картографических проекций и географической разметки.

  • contour — устарело. Представляет пространственное распределение дискретными уровнями.
  • geojson — объединяет географические данные в коллекцию объектов GeoJSON.
  • geopath — преобразует объекты GeoJSON в строки контуров SVG.
  • geopoint — преобразует координаты (долгота, широта) в точки (x, y).
  • geoshape — преобразует объекты GeoJSON в фигуры для программной отрисовки.
  • graticule — создаёт координатную сетку для карт.
  • heatmap — создаёт изображения тепловых карт по растровым данным. ≥ 5.8
  • isocontour — строит изолинии для растровых данных. ≥ 5.8
  • kde2d — оценивает двумерную плотность и возвращает растровую сетку. ≥ 5.8

Преобразования размещения

Преобразования для вычисления координат элементов в разных вариантах размещения.

  • force — рассчитывает размещение с помощью физического моделирования сил.
  • label — вычисляет положение и прозрачность подписей графика. ≥ 5.16
  • linkpath — прокладывает линии связей между узлами.
  • pie — вычисляет угловое размещение для круговых и кольцевых диаграмм.
  • stack — размещает группы значений с накоплением.
  • voronoi — строит диаграмму Вороного для набора точек.
  • wordcloud — размещает текстовые строки в облаке слов.

Иерархические преобразования

Преобразования для обработки и размещения иерархических (древовидных) данных.

  • nest — создаёт дерево, группируя объекты по значениям полей.
  • stratify — создаёт дерево по явно заданным значениям ключей.
  • treelinks — создаёт объекты данных для связей в дереве.
  • pack — размещает дерево внутри вложенных окружностей.
  • partition — размещает дерево по принципу пространственного соседства узлов.
  • tree — размещает дерево в виде диаграммы «узлы — связи».
  • treemap — размещает дерево путём рекурсивного деления области на прямоугольники.

Преобразования перекрёстной фильтрации

Преобразования для быстрой инкрементальной фильтрации многомерных данных.

  • crossfilter — поддерживает маску фильтра для многомерных запросов.
  • resolvefilter — превращает результат перекрёстной фильтрации в отфильтрованные потоки данных.

Пользовательские преобразования

Помимо перечисленных, к Vega можно добавлять собственные преобразования через API расширения. Подробнее см. раздел «Преобразования» в документации API.