Ящик с усами (box plot) представляет собой компактную графическую форму отображения распределения числовых данных через ключевые статистические характеристики: медиану, квартильные значения и диапазон разброса. Основная задача такого представления — визуализация формы распределения без детализации каждого отдельного наблюдения.
Центральная конструкция опирается на пять числовых ориентиров:
Разница между третьим и первым квартилем образует межквартильный размах (IQR), который определяет основной «ящик» распределения.
Межквартильный размах формализуется выражением:
IQR = Q3 - Q1
Границы «усов» обычно определяются через коэффициент 1.5:
Значения за пределами этих границ классифицируются как выбросы. Такое правило не является строгим статистическим законом, но используется как стандарт визуальной интерпретации распределений.
Графическая структура ящика с усами состоит из нескольких компонентов:
Важной особенностью является то, что box plot не отображает плотность распределения напрямую, но позволяет оценить асимметрию, смещение медианы и наличие аномальных значений.
В Vega-Lite box plot создаётся с использованием mark типа
boxplot. Библиотека автоматически вычисляет квартильные
значения и границы выбросов, опираясь на входные данные.
Базовая структура спецификации:
{
"data": {
"values": [
{"category": "A", "value": 12},
{"category": "A", "value": 18},
{"category": "A", "value": 25},
{"category": "B", "value": 7},
{"category": "B", "value": 14},
{"category": "B", "value": 22}
]
},
"mark": "boxplot",
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"}
}
}
В данной конфигурации:
x задаёт категориальное разделение данныхy определяет числовую шкалу распределенияmark: "boxplot" активирует автоматический расчёт
статистикОриентация box plot определяется расположением каналов x
и y. При стандартной конфигурации категории располагаются
по оси X, а числовые значения — по оси Y.
Перестановка каналов меняет ориентацию:
{
"mark": "boxplot",
"encoding": {
"x": {"field": "value", "type": "quantitative"},
"y": {"field": "category", "type": "nominal"}
}
}
В таком случае распределение разворачивается горизонтально, что удобно при длинных названиях категорий или большом их количестве.
Box plot в Vega-Lite не является одиночным графическим примитивом. Он строится как композиция нескольких статистических операций:
Эта логика скрыта внутри высокоуровневого mark, однако при экспорте в Vega она разворачивается в несколько слоёв трансформаций и геометрических примитивов.
При добавлении дополнительных категориальных измерений box plot автоматически строится для каждой группы.
{
"mark": "boxplot",
"encoding": {
"x": {"field": "group", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"},
"color": {"field": "series", "type": "nominal"}
}
}
В этом случае каждая комбинация group + series формирует
отдельное распределение. Цвет используется как визуальный индикатор
различий между подмножествами данных.
Vega-Lite предоставляет параметры для управления отображением выбросов и структуры усов:
extent — коэффициент определения диапазона усовsize — толщина линий и коробкиticks — отображение дополнительных метокПример настройки:
{
"mark": {
"type": "boxplot",
"extent": 1.5,
"size": 30
},
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"}
}
}
Уменьшение extent делает критерий выбросов более
строгим, увеличение — более мягким.
Box plot особенно информативен при анализе асимметричных распределений. Смещение медианы относительно центра коробки указывает на перекос данных.
Типичные случаи интерпретации:
Такая визуализация позволяет быстро оценивать форму распределения без построения гистограммы или KDE.
В Vega (низкоуровневом языке) box plot строится через явное описание трансформаций:
aggregate для вычисления квартилейjoinaggregate для группировкиcalculate для определения границfilter для отбора выбросовПример логики:
{
"transform": [
{
"aggregate": [
{"op": "q1", "field": "value", "as": "q1"},
{"op": "median", "field": "value", "as": "median"},
{"op": "q3", "field": "value", "as": "q3"}
],
"groupby": ["category"]
}
]
}
Дальнейшие шаги включают вычисление IQR и построение геометрии через
rect, rule и symbol.
Box plot эффективно используется для сравнительного анализа нескольких выборок. В Vega-Lite это достигается через категориальное разделение:
Такой подход позволяет одновременно визуализировать различия медиан, разброса и плотности значений между наборами данных.
Корректная интерпретация box plot зависит от настройки шкал:
В Vega-Lite шкала задаётся через encoding:
"y": {
"field": "value",
"type": "quantitative",
"scale": {"type": "log"}
}
Логарифмическое масштабирование изменяет визуальное восприятие усов и медианы, особенно при наличии выбросов большого порядка.
Box plot часто комбинируется с другими mark-типами для уточнения структуры данных:
В Vega-Lite такая композиция реализуется через
layer:
{
"layer": [
{
"mark": "boxplot",
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"}
}
},
{
"mark": "point",
"encoding": {
"x": {"field": "category", "type": "nominal"},
"y": {"field": "value", "type": "quantitative"}
}
}
]
}
Такое сочетание позволяет одновременно видеть агрегированную статистику и исходные наблюдения.
При небольшом количестве наблюдений box plot теряет часть статистической устойчивости:
В Vega-Lite это не приводит к ошибкам, но визуальная интерпретация становится менее репрезентативной, что следует учитывать при анализе малых данных.