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

Преобразование density выполняет одномерную ядерную оценку плотности входных данных и создаёт новый столбец со значениями оценённой плотности в выбранных точках.

Этот простой пример показывает распределение оценок IMDB в наборе данных о фильмах:

import altair as alt
from altair.datasets import data

alt.Chart(data.movies.url).transform_density(
    'IMDB Rating',
    as_=['IMDB Rating', 'density'],
).mark_area().encode(
    x="IMDB Rating:Q",
    y='density:Q',
)

Плотность можно вычислить отдельно для каждой группы, указав аргумент groupby. Здесь вычисление из предыдущего примера разделено по жанрам фильмов:

import altair as alt
from altair.datasets import data

alt.Chart(
    data.movies.url,
    width=120,
    height=80
).transform_filter(
    'isValid(datum["Major Genre"])'
).transform_density(
    'IMDB Rating',
    groupby=['Major Genre'],
    as_=['IMDB Rating', 'density'],
).mark_area().encode(
    x="IMDB Rating:Q",
    y='density:Q',
).facet(
    'Major Genre:N',
    columns=4
)

Параметры преобразования

Метод Chart.transform_density основан на классе DensityTransform, который поддерживает следующие параметры:

Нажмите, чтобы показать таблицу
СвойствоТипОписание
asarray(FieldName)

Выходные поля для значения точки выборки и соответствующей оценки плотности. По умолчанию: ["value", "density"].

bandwidthnumber

Ширина гауссовского ядра (стандартное отклонение). Если не задана или равна нулю, автоматически оценивается по входным данным с помощью правила Скотта.

countsboolean

Логический флаг: выводить оценки вероятности (false) или сглаженные количества (true). По умолчанию: false.

cumulativeboolean

Логический флаг: получать оценки плотности (false) или накопленные оценки (true). По умолчанию: false.

densityFieldName

Поле данных для оценки плотности.

extentarray(number)

Диапазон [min, max], в котором выбираются точки распределения. Если не задан, определяется наблюдаемыми минимальным и максимальным значениями поля, по которому оценивается плотность.

groupbyarray(FieldName)

Поля данных для группировки. Если не заданы, используется одна группа, содержащая все объекты данных.

maxstepsnumber

Максимальное число точек в диапазоне для построения плотности. По умолчанию: 200.

minstepsnumber

Минимальное число точек в диапазоне для построения плотности. По умолчанию: 25.

resolve['independent', 'shared']

Способ согласования параметров нескольких распределений плотности. При "independent" каждое распределение может иметь собственный диапазон и динамическое число точек кривой. При "shared" преобразование KDE использует общий диапазон и точки кривой для всех распределений, позволяя складывать их. По умолчанию: "shared".

stepsnumber

Точное число равномерно расположенных точек в диапазоне для построения плотности. Если задано, переопределяет minsteps и maxsteps. В сочетании с фиксированным диапазоном позволяет использовать одинаковые точки при сложении распределений плотности.