from java.awt import Color,Font
from java.util import *
from jhplot  import *
from flanagan.analysis import *


print "\nfrom flanagan.analysis:"
c1 = HPlot("Canvas",600,400,0.12,1, 1)
c1.visible(1)
c1.gTitle("Linear regression")
c1.setAutoRange()


p1= P1D("data")

rand = Random()
x=[]
y=[]
for i in range(200):
      x.append(10*rand.nextGaussian())
      y.append( 20*x[i]+50*rand.nextGaussian()+5.0 )
      p1.add(x[i],y[i])
  
reg=Regression(x,y)
reg.linear()

cof=reg.getCoeff()
sqrt=reg.getSumOfSquares()


a1=cof[0]
b1=cof[1]
err=reg.getCoeffSd()
a2=err[0]
b2=err[1]



func="P1*x+P0"
f1 = F1D(func, -40.0, 40.0)
# replace the parameters for evaluation
f1.setPar("P0",a1)
f1.setPar("P1",b1)
f1.setColor(Color.blue)
p1.setStyle("p")
p1.setSymbolSize(3)
c1.setNameX("X")
c1.setNameY("Y")
c1.draw(p1)
c1.draw(f1)


print "Intercept=",a1,"+/-",a2
print "Slope=",a1,"+/-",a2
# jHepWork @S.Chekanov