#python-3.x #matplotlib #scipy
#python-3.x #matplotlib #scipy
Вопрос:
Я пытался выполнить некоторые подгонки с помощью curve_fit и столкнулся с проблемой, из-за которой я не могу изменить формат строящейся линии. Когда я запускаю следующий код, в третьей строке выдается ‘AttributeError: Неизвестное свойство fmt’.
plt.errorbar(data[:,0], data[:,1], data[:,2], data[:,3], fmt=format_data, label='Original data')
x_range = np.linspace(np.amin(data[:,0]), np.amax(data[:,0]), 100)
plt.plot(x_range, linear_fit(x_range, *fit[0][0]), label = 'Linear Fit', fmt='mo')
Где data — это массив numpy, содержащий мои данные x, y, xerr и yerr, а fit — это возврат операции curve_fit.
Если я удалю аргумент fmt, он отобразит все нормально и выберет формат по умолчанию. Я предполагаю, что это как-то связано с тем, что plt.plot ведет себя по-другому, когда вы строите график возврата функции. Я знаю, что могу вызвать .color и .marker для линейного объекта, возвращаемого plt.plot, но предпочел бы не делать этого.
Есть ли какое-либо исправление для этого?
Комментарии:
1.
fmt
недопустимый аргумент ключевого слова дляplt.plot
. Вы можете видеть это из подписи функции . Один из вариантов — указать формат в качестве позиционного аргумента,plt.plot(x,y,'mo')
; другой вариант — использовать отдельные свойства,plt.plot(x,y,color='m', marker='o')
.2. Да, это была глупая ошибка. Спасибо!