В Vega-Lite каналы xError, yError,
xError2, yError2 предназначены для
визуализации погрешностей, доверительных интервалов и диапазонов
неопределённости, связанных с измерениями или агрегированными данными.
Эти каналы расширяют стандартную систему encoding, позволяя
задавать не только точечные значения, но и интервальные представления
вдоль осей координат.
Vega-Lite рассматривает погрешность как интервал вокруг центрального значения. Этот интервал может быть:
Каналы ошибок интегрируются в геометрические примитивы (чаще всего
errorbar, rule, rect) и не
существуют как самостоятельные marks, а интерпретируются как
дополнительные параметры позиционирования.
yErroryError задаёт симметричное отклонение по оси Y
относительно основного значения y.
Используется одно поле, содержащее величину ошибки:
{
"y": 50,
"yError": 5
}
Интерпретация:
y - 5y + 5{
"mark": "errorbar",
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"},
"yError": {"field": "error", "type": "quantitative"}
}
}
mean, stdev).xErrorxError является аналогом yError, но для
горизонтальной оси X. Он задаёт симметричный интервал неопределённости
вдоль X.
{
"x": 100,
"xError": 12
}
Интерпретация:
x - 12x + 12{
"mark": "errorbar",
"encoding": {
"x": {"field": "value", "type": "quantitative"},
"xError": {"field": "error", "type": "quantitative"},
"y": {"field": "group", "type": "nominal"}
}
}
xError2 и
yError2Каналы xError2 и yError2 задают вторую
границу интервала. В отличие от xError и
yError, которые предполагают симметрию, пары
Error / Error2 позволяют явно задать
асимметричный диапазон.
xError — нижняя граница по XxError2 — верхняя граница по XyError — нижняя граница по YyError2 — верхняя граница по Y{
"mark": "errorbar",
"encoding": {
"x": {"field": "category"},
"y": {"field": "value"},
"yError": {"field": "y_low"},
"yError2": {"field": "y_high"}
}
}
Каждая точка имеет индивидуальный интервал:
yErroryError2Это позволяет отображать:
{
"mark": "errorbar",
"encoding": {
"x": {"field": "value"},
"xError": {"field": "x_low"},
"xError2": {"field": "x_high"},
"y": {"field": "group"}
}
}
errorbarКаналы ошибок наиболее часто используются с mark
errorbar, который автоматически интерпретирует пары
значений и строит визуальные элементы:
yError),xError),Пример полной спецификации:
{
"data": {"values": [
{"group": "A", "value": 10, "low": 8, "high": 13}
]},
"mark": "errorbar",
"encoding": {
"x": {"field": "group", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"},
"yError": {"field": "low"},
"yError2": {"field": "high"}
}
}
| Тип | Каналы | Семантика | Использование |
|---|---|---|---|
| Симметричный Y | yError |
± одинаковая погрешность | стандартное отклонение |
| Симметричный X | xError |
± одинаковая погрешность | простые интервалы |
| Асимметричный Y | yError + yError2 |
независимые границы | доверительные интервалы |
| Асимметричный X | xError + xError2 |
независимые границы | диапазон значений |
Каналы ошибок часто вычисляются через трансформации:
"transform": [
{"aggregate": [
{"op": "mean", "field": "value", "as": "avg"},
{"op": "stdev", "field": "value", "as": "sd"}
], "groupby": ["category"]}
]
Далее:
"y": {"field": "avg"},
"yError": {"field": "sd"}
При использовании с bar каналы ошибок формируют «усики»
над столбцами:
yError — нижняя граница,yError2 — верхняя граница.При использовании с point или circle:
Данные для каналов могут быть представлены в нескольких форматах:
{
"value": 10,
"low": 8,
"high": 12
}
{
"value": 10,
"error": 2
}
{
"value": 10,
"error": 0.2
}
Если один из каналов отсутствует:
yError без yError2 трактуется как
симметричный интервал;xError без xError2 аналогично;В пространстве координат:
xError / xError2 формируют горизонтальный отрезок;yError / yError2 формируют вертикальный отрезок;quantitative);arc
или text).Error channels часто используются вместе с:
color — различие групп;size — дополнительная метрика;shape — категориальная дифференциация.Пример:
{
"encoding": {
"x": {"field": "group"},
"y": {"field": "mean"},
"color": {"field": "series"},
"yError": {"field": "ci_low"},
"yError2": {"field": "ci_high"}
}
}
При использовании facet error bars вычисляются отдельно
для каждой подгруппы: