В Vega-Lite параметр value в каналах кодирования
используется для задания фиксированных визуальных характеристик
элементов графика. В отличие от field, который связывает
визуальное свойство с данными, value задаёт константу,
одинаковую для всех элементов данного слоя или для выбранного
подмножества.
value в системе кодированияВ модели Vega-Lite каждое визуальное свойство mark’а может быть задано двумя принципиально разными способами:
field) — значение
извлекается из набора данных;value) — значение
фиксировано и не зависит от данных.Конструкция value формирует однородное визуальное
поведение, применяемое ко всем элементам, попадающим под
соответствующее правило кодирования.
value в структуре спецификацииvalue используется внутри блока encoding,
либо в определении mark, когда требуется задать статическое
оформление:
{
"mark": "circle",
"encoding": {
"x": { "field": "x", "type": "quantitative" },
"y": { "field": "y", "type": "quantitative" },
"color": { "value": "steelblue" }
}
}
В данном примере координаты берутся из данных, а цвет задаётся фиксированно и не зависит от значений строк датасета.
field и valueРазличие между двумя подходами является фундаментальным для Vega-Lite:
| Характеристика | field |
value |
|---|---|---|
| Источник | данные | константа |
| Изменчивость | динамическая | статическая |
| Привязка к данным | есть | отсутствует |
| Использование | аналитическая визуализация | стилизация |
Использование value исключает участие канала в
визуальной агрегации и масштабировании данных.
Практически все визуальные каналы Vega-Lite поддерживают
value, включая:
colorsizeopacitystrokeWidthfillshapestrokeКаждый из них принимает фиксированное значение, которое применяется ко всем mark’ам слоя.
Наиболее частое применение value связано с визуальной
унификацией цвета:
{
"mark": "bar",
"encoding": {
"x": { "field": "category", "type": "nominal" },
"y": { "field": "amount", "type": "quantitative" },
"color": { "value": "#4C78A8" }
}
}
Все столбцы получают одинаковый цвет, что подчёркивает структуру данных, но не вводит дополнительное измерение.
value может задавать и числовые параметры, влияющие на
геометрию mark’ов:
{
"mark": "point",
"encoding": {
"x": { "field": "time", "type": "temporal" },
"y": { "field": "value", "type": "quantitative" },
"size": { "value": 80 }
}
}
Размер всех точек фиксируется, исключая влияние вариативности через данные.
Константная прозрачность часто используется для управления визуальной иерархией слоёв:
{
"mark": "line",
"encoding": {
"x": { "field": "date", "type": "temporal" },
"y": { "field": "price", "type": "quantitative" },
"opacity": { "value": 0.6 }
}
}
Значение opacity создаёт стабильный визуальный контекст
без усложнения структуры данных.
value часто применяется совместно с динамическими
каналами для разделения ролей:
value определяет стиль (цвет, толщина,
прозрачность).{
"mark": "line",
"encoding": {
"x": { "field": "year", "type": "temporal" },
"y": { "field": "sales", "type": "quantitative" },
"color": { "value": "black" },
"strokeWidth": { "value": 2 }
}
}
В многослойных визуализациях value часто выступает
механизмом разграничения визуальных компонентов:
{
"layer": [
{
"mark": "line",
"encoding": {
"x": { "field": "x", "type": "quantitative" },
"y": { "field": "y", "type": "quantitative" },
"color": { "value": "lightgray" }
}
},
{
"mark": "point",
"encoding": {
"x": { "field": "x", "type": "quantitative" },
"y": { "field": "y", "type": "quantitative" },
"color": { "value": "red" },
"size": { "value": 60 }
}
}
]
}
Линия выполняет роль фона, точки — акцентируют данные, оба слоя
используют value для статического оформления.
valueФормат значения зависит от канала:
"steelblue",
"#ff0000");10,
0.5);{
"encoding": {
"strokeDash": { "value": [4, 2] }
}
}
Часто встречающиеся некорректные подходы:
field вместо value для
фиксированных стилей;value как вычисляемое выражение;value там, где требуется визуальная
переменность данных.value полностью исключается из процесса
масштабирования:
scale;Это делает его «вне-данным» параметром визуализации, работающим на уровне рендеринга mark’ов.
Константные визуальные свойства формируют слой стилистического контроля, отделённый от данных. Такая модель позволяет:
value выступает механизмом, который фиксирует визуальную
форму независимо от изменений структуры данных, обеспечивая стабильность
отображения в любых условиях.