Диаграммы размаха — Box Plot
Диаграмма размаха описывает распределение количественных значений набором сводных статистик. Черта внутри прямоугольника показывает медиану. Нижняя и верхняя границы прямоугольника соответствуют первому и третьему квартилям. Значение концов усов зависит от типа диаграммы.
Для создания используйте mark_boxplot.
Свойства диаграммы размаха
Определение поддерживает следующие свойства:
Нажмите, чтобы показать таблицу
| Свойство | Тип | Описание |
|---|---|---|
extent | anyOf(string, number) | Границы усов. |
orient | Orientation | Ориентация диаграммы размаха. Обычно определяется автоматически по типам полей в x и y. При неоднозначности можно задать |
size | number | Размер прямоугольника и черты медианы диаграммы размаха. |
color | anyOf(Color, Gradient, ExprRef) | Стандартный цвет. По умолчанию: ■ |
opacity | number | Непрозрачность примитива в диапазоне |
Кроме них, box, median, rule, outliers и ticks позволяют задавать свойства примитивов отдельных частей диаграммы.
Типы диаграмм размаха
Altair поддерживает два типа, определяемые свойством extent.
- Диаграмма Тьюки используется по умолчанию. Усы идут от минимального до максимального значения внутри диапазона
[Q1 - k * IQR, Q3 + k * IQR]. Здесь Q1 и Q3 — первый и третий квартили, IQR — межквартильный размахQ3-Q1. Множитель k задаётся черезextent; по умолчанию он равен1.5. Точки за пределами усов показываются отдельными примитивами point.
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot().encode(
alt.X("Miles_per_Gallon:Q").scale(zero=False)
)
- Диаграмма min-max: нижний и верхний усы показывают минимум и максимум. Ни одна точка не считается выбросом.
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot(extent="min-max").encode(
alt.X("Miles_per_Gallon:Q").scale(zero=False),
alt.Y("Origin:N"),
)
Размерность и ориентация
Altair поддерживает одномерные и двумерные диаграммы размаха.
Одномерная показывает распределение непрерывного поля. Ориентация автоматически определяется осью этого поля. Например, непрерывное поле по y создаёт вертикальную диаграмму:
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot().encode(
alt.Y("Miles_per_Gallon:Q").scale(zero=False)
)
Двумерная диаграмма показывает распределение непрерывного поля по категориям. Если непрерывное поле находится на оси x, а дискретное — на другой оси, диаграмма горизонтальна.
Каналы цвета, размера и непрозрачности
Вид прямоугольника можно настроить каналами color, size и opacity. size влияет только на прямоугольник и черту медианы; color — только на прямоугольник и точки выбросов; opacity — на всю диаграмму размаха.
Пример с каналом color:
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot(extent="min-max").encode(
alt.X("Origin:N"),
alt.Y("Miles_per_Gallon:Q").scale(zero=False),
alt.Color("Origin:N").legend(None),
)
Канал подсказки
Можно задать собственные подсказки, которые заменят стандартные.
Если поле tooltip не агрегировано, оно заменяет подсказки точек выбросов. Если поле агрегировано, оно заменяет подсказки прямоугольника и усов:
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_boxplot(extent="min-max").encode(
alt.X("Miles_per_Gallon:Q").scale(zero=False),
alt.Y("Origin:N"),
alt.Tooltip("mean(Miles_per_Gallon)"),
)