Оценка плотности
Преобразование density строит одномерную ядерную оценку плотности по числовому полю. Вместо исходных записей оно выдаёт точки оценённой кривой: значение поля и соответствующую ему плотность.
// Любая спецификация представления
{
...,
"transform": [
{"density": ...}, // Оценка плотности
...
],
...
}
Свойства преобразования
| Свойство | Тип | Описание |
|---|---|---|
density |
FieldName | Обязательное поле данных для оценки плотности. |
groupby |
FieldName[] | Поля данных для группировки. Если не указаны, используется одна группа, содержащая все объекты данных. |
cumulative |
boolean | Флаг выбора обычной оценки плотности (false) или накопленной оценки (true). По умолчанию: false. |
counts |
boolean | Флаг выбора оценок вероятности (false) или сглаженных количеств (true). По умолчанию: false. |
bandwidth |
number | Ширина полосы сглаживания — стандартное отклонение гауссова ядра. Если не указана или равна нулю, автоматически оценивается по входным данным по правилу Скотта. |
extent |
[number, number] | Входная область [min, max], на которой берутся точки распределения. Если не указана, определяется по наблюдаемым минимальному и максимальному значениям поля для оценки плотности. |
minsteps |
number | Минимальное число точек на диапазоне extent для построения плотности. По умолчанию: 25. |
maxsteps |
number | Максимальное число точек на диапазоне extent для построения плотности. По умолчанию: 200. |
resolve |
"independent" или "shared" |
Согласование параметров нескольких оценок плотности. При "independent" каждая оценка может иметь собственный диапазон и динамически определяемое число точек кривой. При "shared" преобразование обеспечивает общий диапазон и общие точки кривых, что позволяет укладывать их друг на друга. По умолчанию: "shared". |
steps |
number | Точное число точек на диапазоне extent для построения плотности. Если задано, переопределяет minsteps и maxsteps, задавая точное число равномерно расположенных точек. Полезно вместе с фиксированным extent, чтобы точки совпадали при укладке кривых плотности. |
as |
FieldName[] | Имена двух выходных полей: значение точки и соответствующая оценка плотности. По умолчанию: ["value", "density"]. |
Использование
{"density": "measure", "groupby": ["key"]}
Для каждого значения поля key плотность поля measure оценивается отдельно. Выходные записи имеют вид:
[
{"key": "a", "value": 1, "density": 0.02},
...
]
График плотности
Уложенные друг на друга кривые плотности
Для правильной укладки задайте общий extent и фиксированное число точек steps, чтобы точки всех кривых совпадали по горизонтали. Значение counts: true умножает плотности на число записей в каждой группе и сохраняет различия между размерами групп.
Кривые плотности по панелям
Плотность массы тела пингвинов в граммах для разных видов: