我真的很困惑:我.... 我有大量数据,我试图用最合适的线条绘制它。 我尝试了两种不同的方式:
pl.plot(med[::skip],var[::skip],'k.')
p, q = np.polyfit(var[::skip],med[::skip], 1)
pl.plot(med,p*med+q,'-')
和
pl.plot(med[::skip],var[::skip],'k.')
p = np.polyfit(var[::skip],med[::skip], 1)
fit = np.polyval(p, var[::skip])
pl.plot(var[::skip],fit)
但他们都给了我一些疯狂的东西:
我做错了什么?
答案 0 :(得分:1)
numpy.polyfit()
需要x
,然后y
作为参数,因此您需要在调用时交换var
和med
。
请注意,因为你有一个对数日志图,所以不会给你一条直线。相反,您应该适合两个变量的日志:
pl.plot(med[::skip],var[::skip],'k.')
p, q = np.polyfit(np.log10(med[::skip]),np.log10(var[::skip]), 1)
pl.plot(med[::skip],10**(p*np.log10(med[::skip])+q),'-')