1

我正在绘制图表并使用该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' )
4

1 回答 1

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可能是很正常的(因此您为什么要拟合它)。

于 2013-06-28T15:23:40.717 回答