как я могу использовать plt.hist для создания гистограммы, нормированной на другое значение, т. е. не 1? [Дубликат]

Как и конфигурация на стороне Laravel, вы должны включить «Менее безопасные приложения» в своей учетной записи Gmail.

На стороне Laravel это руководство показывает необходимые вам настройки. Используйте smtp.gmail.com для хоста, а также 465/ssl или 587/tls.

8
задан Edwin 27 January 2012 в 18:29
поделиться

2 ответа

Просто вычислите его и нормализуйте его до любого значения, которое вы хотите, затем используйте bar для построения гистограммы.

На боковой ноте это нормализует такие вещи, что область всех баров normed_value. Сырая сумма будет not быть normed_value (хотя это легко сделать, если хотите).

Например

import numpy as np
import matplotlib.pyplot as plt

x = np.random.random(100)
normed_value = 2

hist, bins = np.histogram(x, bins=20, density=True)
widths = np.diff(bins)
hist *= normed_value

plt.bar(bins[:-1], hist, widths)
plt.show()

enter image description here [/g2]

Итак, в этом случае, если бы мы должны были интегрировать (суммировать высоту, умноженную на ширину) бины, мы получим 2.0 вместо 1.0. (т. е. (hist * widths).sum() даст 2.0)

10
ответ дан Joe Kington 26 August 2018 в 17:40
поделиться

Вы можете передать аргумент weights в hist вместо использования normed. Например, если ваши ящики покрывают интервал [minval, maxval], у вас есть n корзины, и вы хотите нормализовать область до A, то я думаю, что

weights = np.empty_like(x)
weights.fill(A * n / (maxval-minval) / x.size)
plt.hist(x, bins=n, range=(minval, maxval), weights=weights)

должен сделать трюк.

EDIT: Аргумент weights должен быть того же размера, что и x, и его эффект заключается в том, чтобы каждое значение в x вносило соответствующее значение в weights в сторону подсчета bin, а не 1 .

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

8
ответ дан James 26 August 2018 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: