在我的图中扩展pylab.poly1d

时间:2013-06-28 14:52:32

标签: python numpy matplotlib

我正在绘制图表并使用pylab.poly1d函数绘制最佳拟合线。但最合适的生产线还不够长。我该如何扩展这一行。这是我的代码:

y=np.genfromtxt('_02total.txt').T[0] 
x=np.genfromtxt('_02total.txt').T[1] 
fit=pl.polyfit(x,y,1)
fit_fn=pl.poly1d(fit)
scat=pl.plot(x,y, 'yo', x, fit_fn(x), '--k')
pl.show()

如何延长fit_fn行?

编辑:

第二次尝试不起作用

y=np.genfromtxt('_02total.txt').T[0] #unweighted
x=np.genfromtxt('_02total.txt').T[1] #weighted
fit=pl.polyfit(x,y,1)
fit_fn=pl.poly1d(fit)
x_min=0.2
x_max=2
n=1000
x_fit = pl.linspace(x_min, x_max, n) 
y_fit = fit_fn(x_fit)
scat=pl.plot(x,y, 'yo', x, fit_fn(x), '-r' )

1 个答案:

答案 0 :(得分:2)

# Fit function given by:
fit_fn=pl.poly1d(fit)

x_fit = pl.linspace(x_min, x_max, n) 
y_fit = fit_fn(x_fit)

x_minx_max指定您希望绘制数据的限制,n点数。你应该总是在拟合数据时这样做,因为x中的点数可能是相当的(因此你适合它的原因)。