Разбиение на интервалы

Разбиение на интервалы (bin) превращает непрерывные числовые значения в интервальные группы. Типичный пример — построение гистограммы. В Vega-Lite интервалы можно задать свойством bin в определении поля канала или преобразованием bin.

Содержание страницы

Разбиение в канале кодирования

// Спецификация одиночного представления или слоя
{
  ...,
  "mark/layer": ...,
  "encoding": {
    "x": {
      "bin": ..., // Разбиение на интервалы
      "field": ...,
      "type": "quantitative",
      ...
    },
    "y": ...,
    ...
  },
  ...
}

Поле encoding можно разбить на интервалы непосредственно через свойство bin в определении поля.

Свойство Тип Описание
bin boolean, BinParams, "binned" или null Флаг разбиения количественного поля на интервалы, объект параметров или указание, что данные для канала x или y уже разбиты до загрузки в Vega-Lite ("binned"). При true применяются параметры по умолчанию. При "binned" поле начала интервала задаётся через x (или y), а поле конца — через x2 (или y2); шкала и ось оформляются так же, как при разбиении средствами Vega-Lite. Для настройки делений оси с учётом шага можно использовать tickMinStep. По умолчанию: false.

Гистограмма

Число записей в каждом интервале показано столбчатым примитивом:

Гистограмма с порядковой шкалой

По умолчанию интервальное поле имеет тип "quantitative". Если задать type: "ordinal", Vega-Lite использует порядковую шкалу:

Интервалы цвета

Разбиение можно применить и к цвету. Vega-Lite автоматически создаёт легенду с подписями диапазонов:

Уже разбитые данные

Если значения разбиты на интервалы заранее, задайте bin: "binned". Укажите поля начала и конца каждого интервала: тогда Vega-Lite построит соответствующие шкалы и оси. Чтобы подстроить деления оси под ширину интервала, можно использовать {"binned": true, "step": 2}.

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

// Любая спецификация представления
{
  ...,
  "transform": [
    {"bin": ..., "field": ..., "as": ...}, // Преобразование разбиения на интервалы
     ...
  ],
  ...
}
Свойство преобразования Тип Описание
bin true или BinParams Обязательный объект свойств разбиения либо true для применения параметров по умолчанию.
field FieldName Обязательное поле данных для разбиения на интервалы.
as FieldName или FieldName[] Обязательные выходные поля для начала и конца интервала. Задаются строкой либо массивом из двух строк — имён поля начала и поля конца соответственно. Если указана одна строка, например "val", поле конца будет называться "val_end".

Пример: гистограмма с преобразованием bin

Вместо свойства bin в определении поля можно использовать преобразование для создания нового поля, например bin_IMDB_Rating, а затем кодировать это поле, задав bin: "binned" в определении канала:

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

Параметры разбиения

При bin: true используются параметры по умолчанию. Чтобы изменить их, задайте bin объектом определения разбиения со следующими свойствами:

Свойство Тип Описание
anchor number Значение во входной области разбиения, к которому привязываются интервалы. При необходимости границы сдвигаются, чтобы одна из них совпала с этим значением. По умолчанию: минимальное значение диапазона разбиения.
base number Основание системы счисления для автоматического определения интервалов. По умолчанию: 10.
divide number[] Коэффициенты допустимого деления шага. Значение по умолчанию [5, 2] означает, что для основания 10 алгоритм может делить ширину интервала на 5 и/или 2. Например, при исходном шаге 10 проверяются также шаги 2 (= 10/5), 5 (= 10/2) и 1 (= 10/(5×2)): они могут удовлетворять заданным ограничениям. По умолчанию: [5, 2].
extent BinExtent Массив из двух элементов [min, max], задающий желаемый диапазон значений интервалов.
maxbins number Максимальное число интервалов. По умолчанию: 6 для каналов row, column и shape; 10 для остальных.
minstep number Минимально допустимый шаг; особенно полезен для целочисленных значений.
nice boolean При true старается выбирать удобные границы, например кратные десяти. По умолчанию: true.
step number Точный шаг между интервалами. Если задан, такие параметры, как maxbins, игнорируются.
steps number[] Массив допустимых размеров шага, из которых выбирается один.

Пример: настройка максимального числа интервалов

Параметр maxbins меняет максимальное число создаваемых интервалов. Фактическое число может быть меньше, поскольку границы округляются до удобных значений:

Порядковые интервалы

Обычно интервальное поле стоит оставить количественным: Vega-Lite построит оси и легенды, подходящие для диапазонов. Порядковый тип полезен, если требуется сортировать интервалы или пропускать пустые. Здесь интервалы отсортированы по числу записей: