Нужна плавная кривая от lmfit в большем количестве точек данных.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Нужна плавная кривая от lmfit в большем количестве точек данных.

Сообщение Anonymous »

Я подгоняю лоренцианство к следующим данным. Если я построю наилучшее соответствие, он отобразит результаты только при определенных значениях x, где у меня были данные. Я пытался получить плавную кривую, которая лучше бы представляла, но что-то не так.
данные:

Код: Выделить всё

y_means = [2.32070822e-06, 1.90175015e-06, 2.09473380e-06, 2.80934411e-06,
2.38255275e-06, 3.02204121e-06, 3.84290466e-06, 3.84136311e-06,
7.53941486e-06, 8.68364774e-06, 1.20078494e-05, 2.20557048e-05,
3.73314724e-05, 6.03141332e-05, 9.84530711e-05, 1.58565010e-04,
3.61269554e-04, 7.53586472e-04, 3.56518897e-04, 1.60734633e-04,
1.06442283e-04, 5.41622644e-05, 2.73085592e-05, 2.54361900e-05,
9.10802093e-06, 4.81356192e-06, 6.49884117e-06, 4.94871197e-06,
3.27389990e-06, 2.65197533e-06, 2.52672943e-06, 2.56496345e-06,
2.11445845e-06, 1.96091323e-06, 2.60823301e-06]

all_xsclices = [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34]
код:

Код: Выделить всё

# lorentzian fit
from lmfit.models import LorentzianModel

model = LorentzianModel()
params = model.guess(y_means, x=all_xslices)
all_xslices_fit = np.linspace(min(all_xslices), max(all_xslices), 100)
result = model.fit(y_means, params, x=all_xslices)
result_smooth = model.eval(x=all_xslices_fit)

# plotting the decay along y-axis: log axis
plt.figure(figsize=(8, 5), dpi=300)
plt.scatter(all_xslices, y_means, marker = '.', s = 200, c = 'g', label = "")
# plt.plot(all_xslices,lorentzian(all_xslices,*popt), 'g', label='Lorentz 1')
plt.plot(all_xslices, result.best_fit, 'g', label='Lorentz')
plt.plot(all_xslices_fit, result_smooth, 'r', label='Lorentz')
plt.xlabel("y length", fontsize = 15)
plt.ylabel("FFT amplitude", fontsize = 15)
plt.xticks(fontsize = 15)
plt.yticks(fontsize = 15)
plt.yscale('log')
plt.subplots_adjust(right=0.96,left=0.15,top=0.96,bottom=0.12)
plt.legend(loc = 'best')
plt.show()
Вот текущий результат:
[img]https://i.sstatic. net/BPSsryzu.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/791 ... datapoints
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Семейства PrivateFontCollection ненадежны при большем количестве итераций.
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Параграф Inputtype, аналогичный тексту, на большем количестве строк
    Anonymous » » в форуме Javascript
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Плавная кривая через точки с Prepar1d
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Плавная кривая через точки с Prepar1d
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Плавная кривая через точки с Prepar1d
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»