В спецификациях Vega-Lite и Vega параметр reverse
используется для инвертирования направления отображения данных. Его роль
заключается в изменении логики визуального отображения без трансформации
исходного набора данных, что позволяет управлять ориентацией шкал, осей
и порядка значений на графиках.
Параметр reverse отвечает за переворот
направления отображения шкалы. В зависимости от контекста он
может:
Ключевой принцип заключается в том, что reverse не
изменяет данные, а только интерпретацию координатной системы.
Наиболее распространённое использование связано с масштабами.
При reverse: true:
Это особенно важно для:
{
"data": { "values": [
{ "x": 1, "y": 10 },
{ "x": 2, "y": 20 },
{ "x": 3, "y": 30 }
]},
"mark": "line",
"encoding": {
"x": { "field": "x", "type": "quantitative" },
"y": {
"field": "y",
"type": "quantitative",
"scale": { "reverse": true }
}
}
}
В этом случае ось Y будет отображаться сверху вниз, начиная с максимальных значений.
В Vega и Vega-Lite поведение осей может быть изменено независимо от шкал.
scale.reverse инвертирует математическое отображение
значений,axis.reverse инвертирует визуальное направление
оси.Это различие важно:
{
"encoding": {
"x": {
"field": "category",
"type": "ordinal",
"axis": {
"reverse": true
}
},
"y": {
"field": "value",
"type": "quantitative"
}
}
}
Категории будут отображаться справа налево вместо стандартного слева направо.
Хотя формально reverse не является полноценной частью
sort, он часто применяется совместно с сортировкой как
логическая инверсия порядка.
В Vega-Lite сортировка может быть задана через:
reverse в этом контексте фактически эквивалентен
переключению направления сортировки, но реализуется на уровне
визуального слоя.
{
"encoding": {
"y": {
"field": "category",
"type": "ordinal",
"sort": "x",
"scale": { "reverse": true }
},
"x": {
"field": "value",
"type": "quantitative"
}
}
}
Здесь порядок категорий сначала сортируется по значению, а затем инвертируется визуально.
В координатной системе браузерной визуализации (SVG/Canvas):
reverse позволяет:
В сложных композициях (layered charts, facet, concat):
reverse может применяться локально к каждой шкале,{
"layer": [
{
"mark": "bar",
"encoding": {
"x": { "field": "a", "type": "quantitative" },
"y": {
"field": "b",
"type": "quantitative",
"scale": { "reverse": true }
}
}
},
{
"mark": "line",
"encoding": {
"x": { "field": "a", "type": "quantitative" },
"y": { "field": "c", "type": "quantitative" }
}
}
]
}
Здесь только один слой инвертирует ось Y, что создаёт различие в интерпретации данных между слоями.
Для категориальных данных reverse:
Пример:
{
"encoding": {
"x": {
"field": "category",
"type": "nominal",
"scale": { "reverse": true }
}
}
}
Категории отображаются в обратном порядке относительно исходного набора или заданного sort.
При использовании padding (отступов шкалы):
Это важно, поскольку:
Для временных данных:
{
"encoding": {
"x": {
"field": "timestamp",
"type": "temporal",
"scale": { "reverse": true }
}
}
}
Такой подход полезен при визуализации последних событий слева или сверху.
reverse задаётся в encoding.scale или axis,reverse может применяться в scale напрямую,В Vega возможно более точное управление порядком преобразований, тогда как Vega-Lite упрощает модель, скрывая часть промежуточных вычислений.
Использование reverse влияет на:
В аналитических визуализациях оно часто применяется для: