Шкала bin-ordinal применяется для отображения данных, предварительно разбитых на интервалы (бины), когда каждый интервал должен интерпретироваться как отдельная категориальная позиция на оси, но при этом сохраняется упорядоченность и равномерное распределение по пространству.
Ключевая идея заключается в том, что непрерывная числовая область преобразуется в набор дискретных диапазонов фиксированного размера, а затем каждый диапазон отображается как отдельное значение ordinal-основы, но с геометрией, характерной для равномерной сетки.
Перед применением шкалы Vega-Lite выполняет операцию разбиения данных на интервалы:
{
"data": {"values": [...]},
"mark": "bar",
"encoding": {
"x": {
"field": "value",
"bin": {"maxbins": 10},
"type": "quantitative"
},
"y": {"aggregate": "count"}
}
}
На этом этапе формируются:
Результатом становится не исходное число, а структурированная сущность интервала.
Шкала bin-ordinal используется, когда необходимо:
В отличие от стандартной ordinal-шкалы, где категории могут быть произвольными, здесь порядок и шаг строго производны от числового диапазона.
После биннинга Vega-Lite формирует виртуальный домен:
[bin0, bin1, bin2, ... binN]
Каждый элемент домена соответствует диапазону значений:
0–10
10–20
20–30
...
Шкала bin-ordinal отображает эти интервалы в равномерные позиции на оси.
{
"data": {"values": [
{"v": 1}, {"v": 2}, {"v": 2}, {"v": 5},
{"v": 7}, {"v": 9}, {"v": 10}, {"v": 12}
]},
"mark": "bar",
"encoding": {
"x": {
"field": "v",
"type": "quantitative",
"bin": {"maxbins": 5},
"axis": {"title": "Интервалы значений"}
},
"y": {
"aggregate": "count",
"type": "quantitative"
}
}
}
Внутренне Vega-Lite применяет шкалу:
scale: { type: "bin-ordinal" }
Шкала bin-ordinal фактически ведёт себя как band-scale с фиксированным шагом:
Это обеспечивает визуальную стабильность гистограмм.
Параметр maxbins управляет количеством интервалов:
"bin": {"maxbins": 20}
При увеличении:
При уменьшении:
Подписи оси в bin-ordinal обычно представляют:
a–bПример:
0–10 | 10–20 | 20–30 | 30–40
Vega-Lite может автоматически форматировать подписи, используя
правила биннинга и параметр nice.
Шкала bin-ordinal чувствительна к параметрам:
paddingInnerpaddingOuterbandPaddingrangeStepПример настройки:
"encoding": {
"x": {
"field": "value",
"type": "quantitative",
"bin": {"maxbins": 15},
"axis": {"labelAngle": -45}
}
}
При большом количестве бинов поворот подписей становится критичным для читаемости.
Типичный сценарий применения:
{
"mark": "bar",
"encoding": {
"x": {
"field": "score",
"type": "quantitative",
"bin": true
},
"y": {
"aggregate": "count"
}
}
}
Шкала bin-ordinal обеспечивает:
Одним из свойств bin-ordinal является устойчивость отображения:
maxbins структура шкалы
сохраняетсяЭто важно для сравнительных визуализаций.
Порядок бинов строго определяется числовой осью:
min → max
Попытка изменить сортировку через sort не влияет на
физический порядок шкалы, так как он вычисляется из биннинга.
Шкала bin-ordinal часто используется вместе с:
aggregatestackfilterimputeПример комбинирования:
{
"transform": [
{"filter": "datum.value > 0"}
],
"mark": "bar",
"encoding": {
"x": {"field": "value", "bin": {"maxbins": 8}},
"y": {"aggregate": "count"}
}
}
При распределениях с выбросами:
Bin-ordinal используется как механизм, который: