我一直试图使用scipy.optimize.curve_fit在一段时间内对某些数据进行指数拟合,但我遇到了真正的困难.我真的看不出任何理由为什么这不起作用,但它只会产生一条直线,不明白为什么!
任何帮助将非常感激
from __future__ import division
import numpy
from scipy.optimize import curve_fit
import matplotlib.pyplot as pyplot
def func(x,a,b,c):
return a*numpy.exp(-b*x)-c
yData = numpy.load('yData.npy')
xData = numpy.load('xData.npy')
trialX = numpy.linspace(xData[0],xData[-1],1000)
# Fit a polynomial
fitted = numpy.polyfit(xData, yData, 10)[::-1]
y = numpy.zeros(len(trailX))
for i in range(len(fitted)):
y += fitted[i]*trialX**i
# Fit an exponential
popt, pcov = curve_fit(func, xData, yData)
yEXP = func(trialX, *popt)
pyplot.figure()
pyplot.plot(xData, yData, label='Data', marker='o')
pyplot.plot(trialX, yEXP, 'r-',ls='--', label="Exp Fit")
pyplot.plot(trialX, y, label = '10 Deg Poly')
pyplot.legend() …Run Code Online (Sandbox Code Playgroud) 我正在使用python程序生成一些数据,使用matplotlib.pyplot绘制数据,然后在乳胶文件中显示图形.
我目前正在将该图保存为.png文件,但图像质量不是很好.我已经尝试过改变DPI,matplotlib.pyplot.figure(dpi=200)但这似乎没什么区别.我也试过使用不同的图像格式,但它们看起来都有点褪色,不是很尖锐.
有没有其他人有这个问题?
任何帮助将非常感激
我有一个2D numpy数组,包含传感器每个像素的单个数据.图像显示在GUI中,带有来自摄像头的实时信息源.我希望能够在图像上绘制一个矩形,以区分屏幕区域.绘制一个平行于图像侧面的矩形似乎很简单,但我最终希望能够旋转矩形.如何知道矩形在旋转时所覆盖的像素?
我的模拟运行了很多次。每次生成数组时,我都会将其插入到较大的数组中,以跟踪所有数据。例如
record = []
for i in range(2):
r = random.random()
array = numpy.arange(20)*r
array.shape = (10,2)
record.append(array)
record = numpy.array(record)
Run Code Online (Sandbox Code Playgroud)
产生:
[[[ 0. 0.88765927]
[ 1.77531855 2.66297782]
[ 3.55063709 4.43829637]
[ 5.32595564 6.21361492]
[ 7.10127419 7.98893346]
[ 8.87659274 9.76425201]
[ 10.65191128 11.53957056]
[ 12.42722983 13.3148891 ]
[ 14.20254838 15.09020765]
[ 15.97786693 16.8655262 ]]
[[ 0. 0.31394919]
[ 0.62789839 0.94184758]
[ 1.25579677 1.56974596]
[ 1.88369516 2.19764435]
[ 2.51159354 2.82554274]
[ 3.13949193 3.45344112]
[ 3.76739031 4.08133951]
[ 4.3952887 4.70923789]
[ 5.02318709 …Run Code Online (Sandbox Code Playgroud) python ×3
arrays ×2
matplotlib ×2
numpy ×2
average ×1
data-fitting ×1
draw ×1
graph ×1
scipy ×1
shape ×1