Double_t func(Double_t *x, Double_t *par) { return par[0] + par[1]*x[0] + par[2]*x[1]; } void myfit() { double x[9]={0,0,0,1,1,1,2,2,2}; double y[9]={0,1,2,0,1,2,0,1,2}; double z[9]={0,0,0,1,1,1,2,2,2}; TGraph2D *g2 = new TGraph2D(9,x,y,z); TF2 *f = new TF2("f",func,0,2,0,2,3); f->SetParameters(0,0,0); g2->Fit(f); TF2 *fresult = (TF2*)g2->FindObject("f"); fresult->Draw("surf1"); g2->Draw("same p0"); }