Диаграммы с погрешностями используются для визуализации неопределённости измерений, доверительных интервалов и вариативности данных. В контексте Vega и Vega-Lite такие диаграммы строятся поверх стандартных графиков и опираются на агрегированные значения и статистические оценки.
Ключевые элементы представления:
Форма представления неопределённости может быть двух типов:
Обе формы опираются на статистические преобразования внутри Vega-Lite или заранее вычисленные значения в Vega.
Vega-Lite поддерживает автоматическое агрегирование данных, что критично для построения error bars и error bands.
Типовая структура данных:
[
{"category": "A", "value": 10},
{"category": "A", "value": 12},
{"category": "A", "value": 9},
{"category": "B", "value": 20},
{"category": "B", "value": 18}
]
Агрегация выполняется через поле aggregate:
mean — среднее значениеmedian — медианаstdev — стандартное отклонениеstderr — стандартная ошибкаci0, ci1 — границы доверительного
интервалаError bars представляют собой линейные маркеры неопределённости вокруг центрального значения.
Базовая идея:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": {
"values": [
{"group": "A", "value": 10},
{"group": "A", "value": 12},
{"group": "A", "value": 9},
{"group": "B", "value": 20},
{"group": "B", "value": 18},
{"group": "B", "value": 22}
]
},
"mark": "errorbar",
"encoding": {
"x": {"field": "group", "type": "nominal"},
"y": {
"field": "value",
"type": "quantitative",
"aggregate": "mean"
},
"extent": {
"value": "ci"
}
}
}
extent определяет способ вычисления интервала:
"ci" — доверительный интервал (по умолчанию)"stderr" — стандартная ошибка"stdev" — стандартное отклонениеОриентация диаграммы определяется типами полей:
{
"mark": "errorbar",
"encoding": {
"x": {
"field": "value",
"type": "quantitative",
"aggregate": "mean"
},
"y": {"field": "group", "type": "nominal"},
"extent": {"value": "stdev"}
}
}
Перестановка осей меняет ориентацию без изменения статистической логики.
Error bands представляют диапазон неопределённости в виде заполненной области между нижней и верхней границей.
Они используются, когда важно показать не только дискретный интервал, но и его плотность в пространстве графика.
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": {
"values": [
{"x": 1, "y": 10},
{"x": 2, "y": 12},
{"x": 3, "y": 15},
{"x": 4, "y": 14},
{"x": 5, "y": 18}
]
},
"mark": "errorband",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {
"field": "y",
"type": "quantitative",
"aggregate": "mean"
},
"extent": {"value": "ci"}
}
}
| Характеристика | Error bars | Error bands |
|---|---|---|
| Представление | Линия с границами | Закрашенная область |
| Восприятие плотности | Слабое | Сильное |
| Подходит для | Дискретных категорий | Непрерывных рядов |
| Перегруженность визуала | Низкая | Выше |
Error bars чаще применяются для категориальных сравнений, error bands — для временных рядов и функций.
В Vega возможен вариант, при котором границы рассчитываются заранее и передаются как отдельные поля.
Пример структуры:
{
"category": "A",
"mean": 10,
"lower": 8,
"upper": 12
}
Использование в Vega-Lite:
{
"mark": "errorbar",
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {"field": "lower", "type": "quantitative"},
"y2": {"field": "upper"},
"color": {"value": "black"}
}
}
При таком подходе статистический слой полностью выносится из спецификации визуализации.
Часто error bars и error bands накладываются на основной график.
Пример: линия среднего значения + band неопределённости.
{
"layer": [
{
"mark": "line",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": "y", "aggregate": "mean"}
}
},
{
"mark": "errorband",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": "y", "aggregate": "mean"},
"extent": {"value": "stderr"}
}
}
]
}
Лэйеры позволяют разделять:
В Vega-Lite визуальные параметры управляются через
mark:
"mark": {
"type": "errorbar",
"color": "black",
"ticks": true
}
"mark": {
"type": "errorband",
"opacity": 0.3,
"color": "steelblue"
}
Ключевые параметры:
opacity — прозрачность зоны неопределённостиcolor — цвет интервалаticks — отображение «усиков»Группировка данных критична для корректного отображения интервалов.
Пример группировки по категориям:
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {
"field": "value",
"type": "quantitative",
"aggregate": "mean"
},
"color": {"field": "series", "type": "nominal"}
}
Группы определяют отдельные полосы неопределённости для каждого ряда данных.
Некорректные конфигурации обычно связаны с:
extentОсобенно критично отсутствие aggregate, поскольку
интервал без центрального значения теряет смысл в контексте
Vega-Lite.
Доверительные интервалы (ci) являются наиболее
распространённым вариантом в статистических визуализациях.
Математически интервал строится на основе распределения выборки и стандартной ошибки среднего. В Vega-Lite это абстрагируется через параметр:
"extent": {"value": "ci"}
или более явно:
"extent": "ci"
Внутренний расчёт выполняется автоматически на основе доступных данных.
extentaggregatey / y2Каждый способ выбирается в зависимости от уровня контроля над данными.