вариант весов для морской дистрибуции?

Я хотел бы иметь параметр весов в distplot seaborn, аналогичный тому, что в гистограмме numpy. Без этой опции единственной альтернативой было бы применение взвешивания к входному массиву, что могло бы привести к непрактичному размеру (и времени).


person nbecker    schedule 29.07.2015    source источник
comment
Или, что еще лучше, входной параметр гистограммы numpy   -  person nbecker    schedule 29.07.2015


Ответы (2)


Вы можете указать веса, передав их в базовую функцию гистограммы matplotlib, используя аргумент hist_kws, как:

sns.distplot(..., hist_kws={'weights': your weights array}, ...)

Однако обратите внимание, что веса будут передаваться только в основную гистограмму; ни kde, ни функции соответствия distplot не будут затронуты.

person vlasisva    schedule 10.09.2015

Как уже упоминал @vlasisla в своем ответе, веса должны быть предоставлены через аргумент ключевого слова hist_kws, чтобы они передавались в функцию hist mathpolotlib. Однако это не даст никакого эффекта, если одновременно не будет отключена опция kde (оценка плотности ядра). Этот код действительно имел бы желаемый эффект:

sns.distplot(x, hist_kws={'weights': x_weights}, kde=False)

Чтобы понять, почему и веса, и kde недопустимы, давайте рассмотрим следующий пример, где x_weights вычисляется как x_weights = np.ones_like(x) / len(x), так что сумма высоты всех интервалов равна 1:

# generate 1000 samples from a normal distribution
np.random.seed(8362) 
x = np.random.normal(size=1000)

# calculate weights
x_weights = np.ones_like(x) / len(x)

# figure 1 - use weights
sns.distplot(x, hist_kws={'weights': x_weights}, kde=False)
# figure 2 - default plot with kde
sns.distplot(x)

Рис. 1. Использование dist с весами, а не KDE Рисунок 2. Использование dist с параметрами по умолчанию

На рисунке 1 мы предоставили функцию dist с весами, поэтому на этом рисунке высота всех ящиков в сумме равна 1. На рис. 2 поведение dist по умолчанию включено, поэтому область под функцией KDE в сумме равна 1, а высота ячеек нормализована соответственно. Теперь легко увидеть, что построение графика KDE, когда указаны веса, действительно не имеет большого смысла.

person myrs    schedule 13.04.2020