Экспоненциальная кривая соответствует настраиваемому набору данных - вывод - плоская линия - PullRequest
0 голосов
/ 13 октября 2018

Я взял несколько весов у коллег, загрузил 1000 прогонов, где каждый прогон отбирает 3 значения из исходных данных и добавляет минимум, а сейчас я пытаюсь изогнуть эти значения для экспоненциального подбора.Когда я строю гистограмму, это не довольно экспоненциальное значение, но я думаю, что я делаю что-то не так, потому что я просто получаю плоскую линию.

Образец значения ниже содержит 1000 выборок (каждаяминимальное значение выборки 3 из исходных данных)

figure = plt.figure(figsize=(10, 6)) # first element is width, second is height.
axes = figure.add_subplot(1, 1, 1)
#axes.hist( sample, density=True, color="dimgray") # a density
axes.set_ylabel( "Density")
axes.set_xlabel( "Weights")
axes.set_title( "Coworker Weights")

ys, bins = np.histogram(sample,bins = 7)
axes.plot(bins[:-1],ys)

print(bins,ys)

Этот график выходит на следующую картинку, которая выглядит некрасиво, но я все же думаю, что она должна соответствовать кривой:

enter image description here

Далее я пытаюсь уместить данные:

def func(x, a, b, c):
    return a * np.exp(-b * x) + c

weights = np.array(weights)
popt, pcov = curve_fit(func, bins[:-1], ys)
print(popt)

figure = plt.figure(figsize=(10, 6)) # first element is width, second is height.
axes = figure.add_subplot(1, 1, 1)
plt.plot(weights, func(weights, *popt))

Массив весов - мои исходные данные.Вывод, который я получаю, - это просто плоская линия, а коэффициенты popt равны [1,1,143].Что я делаю не так?

...