[ROOT] Re:

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Sep 12 2003 - 10:21:10 MEST


You should not draw the TGraph and the TMultiGraph, but only the TMultiGraph.

See an example how to show the fit box for both graphs in the attachement.

Please specify a subject to your mails.
see: http://root.cern.ch/root/roottalk/RoottalkRules.html

Rene Brun

Venkatesh Kaushik wrote:
> 
> Hi ROOTers,
> I have a couple of graphs that i draw on the same canvas using TMultigraph
> option, why do i see the X-axis labes and the Y-axis labels for both the
> graphs overlap, even the stats overlap. am i doing something wrong?
> 
>  Constrain = 1;
>  TCanvas *c=new TCanvas("c","Mokka GEM Response Curve",0,27,1212,771);
>  ...
>  ... .....
> 
>  // First graph with a fit
> 
>  TGraph *grE=new TGraphErrors(6,E,E_Mean,errE,Err);
>  grE->Draw("AP");
>  grE->Fit("pol1");
>  TF1 *myFuncE=grE->GetFunction("pol1");
>  if(Constrain)myFuncE->SetParameter(0,0);
>  Double_t slopeE_Mean=myFuncE->GetParameter(1);
>  grE->SetLineColor(kRed);
> 
>  // Second graph with a fit
> 
>  TGraph *grH=new TGraphErrors(6,E,H_Mean,errH,HErr);
>  grH->Draw("AP");
>  grH->Fit("pol1");
>  TF1 *myFuncH=grH->GetFunction("pol1");
>  if(Constrain)myFuncH->SetParameter(0,0);
>  Double_t slopeH_Mean=myFuncH->GetParameter(1);
>  grH->SetLineColor(kBlue);
> 
>  TMultiGraph *mg = new TMultiGraph();
>  mg->Add(grE);
>  mg->Add(grH);
>  mg->Draw("AP");
> 
>   ..
>  ..
> I would appreciate any help in this regard.
> Thank you.
> Venkat.
> ----------------------------------------------------------

{
   gROOT->Reset();
   gStyle->SetOptFit();
   c1 = new TCanvas("c1","gerrors2",200,10,700,500);
   c1->SetGrid();

      // draw a frame to define the range
   TMultiGraph *mg = new TMultiGraph();

      // create first graph
   Int_t n1 = 10;
   Double_t x1[]  = {-0.1, 0.05, 0.25, 0.35, 0.5, 0.61,0.7,0.85,0.89,0.95};
   Double_t y1[]  = {-1,2.9,5.6,7.4,9,9.6,8.7,6.3,4.5,1};
   Double_t ex1[] = {.05,.1,.07,.07,.04,.05,.06,.07,.08,.05};
   Double_t ey1[] = {.8,.7,.6,.5,.4,.4,.5,.6,.7,.8};
   gr1 = new TGraphErrors(n1,x1,y1,ex1,ey1);
   gr1->SetMarkerColor(kBlue);
   gr1->SetMarkerStyle(21);
   gr1->Fit("pol6","q");
   mg->Add(gr1);

      // create second graph
   Int_t n2 = 10;
   Float_t x2[]  = {-0.28, 0.005, 0.19, 0.29, 0.45, 0.56,0.65,0.80,0.90,1.01};
   Float_t y2[]  = {2.1,3.86,7,9,10,10.55,9.64,7.26,5.42,2};
   Float_t ex2[] = {.04,.12,.08,.06,.05,.04,.07,.06,.08,.04};
   Float_t ey2[] = {.6,.8,.7,.4,.3,.3,.4,.5,.6,.7};
   gr2 = new TGraphErrors(n2,x2,y2,ex2,ey2);
   gr2->SetMarkerColor(kRed);
   gr2->SetMarkerStyle(20);
   gr2->Fit("pol5","q");
   
   mg->Add(gr2);
   
   mg->Draw("ap");
   
     //force drawing of canvas to generate the fit TPaveStats
   c1->Update();
   TPaveStats *stats1 = (TPaveStats*)gr1->GetListOfFunctions()->FindObject("stats");
   TPaveStats *stats2 = (TPaveStats*)gr2->GetListOfFunctions()->FindObject("stats");
   stats1->SetTextColor(kBlue); 
   stats2->SetTextColor(kRed); 
   stats1->SetX1NDC(0.12); stats1->SetX2NDC(0.32); stats1->SetY1NDC(0.75);
   stats2->SetX1NDC(0.72); stats2->SetX2NDC(0.92); stats2->SetY1NDC(0.78);
   c1->Modified();
}



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:15 MET