Оценка плотности

Преобразование 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 умножает плотности на число записей в каждой группе и сохраняет различия между размерами групп.

Кривые плотности по панелям

Плотность массы тела пингвинов в граммах для разных видов: