Разбиение на интервалы
Разбиение на интервалы (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 построит оси и легенды, подходящие для диапазонов. Порядковый тип полезен, если требуется сортировать интервалы или пропускать пустые. Здесь интервалы отсортированы по числу записей: