ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
multigraph.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_graphs
3 /// Create and Draw a TMultiGraph.
4 ///
5 /// \macro_image
6 /// \macro_code
7 ///
8 /// \author Rene Brun
9 
10 {
11  gStyle->SetOptFit();
12  TCanvas *c1 = new TCanvas("c1","multigraph",700,500);
13  c1->SetGrid();
14 
15  // draw a frame to define the range
16  TMultiGraph *mg = new TMultiGraph();
17 
18  // create first graph
19  const Int_t n1 = 10;
20  Double_t px1[] = {-0.1, 0.05, 0.25, 0.35, 0.5, 0.61,0.7,0.85,0.89,0.95};
21  Double_t py1[] = {-1,2.9,5.6,7.4,9,9.6,8.7,6.3,4.5,1};
22  Double_t ex1[] = {.05,.1,.07,.07,.04,.05,.06,.07,.08,.05};
23  Double_t ey1[] = {.8,.7,.6,.5,.4,.4,.5,.6,.7,.8};
24  TGraphErrors *gr1 = new TGraphErrors(n1,px1,py1,ex1,ey1);
25  gr1->SetMarkerColor(kBlue);
26  gr1->SetMarkerStyle(21);
27  gr1->Fit("pol6","q");
28  mg->Add(gr1);
29 
30  // create second graph
31  const Int_t n2 = 10;
32  Float_t x2[] = {-0.28, 0.005, 0.19, 0.29, 0.45, 0.56,0.65,0.80,0.90,1.01};
33  Float_t y2[] = {2.1,3.86,7,9,10,10.55,9.64,7.26,5.42,2};
34  Float_t ex2[] = {.04,.12,.08,.06,.05,.04,.07,.06,.08,.04};
35  Float_t ey2[] = {.6,.8,.7,.4,.3,.3,.4,.5,.6,.7};
36  TGraphErrors *gr2 = new TGraphErrors(n2,x2,y2,ex2,ey2);
37  gr2->SetMarkerColor(kRed);
38  gr2->SetMarkerStyle(20);
39  gr2->Fit("pol5","q");
40 
41  mg->Add(gr2);
42 
43  mg->Draw("ap");
44 
45  //force drawing of canvas to generate the fit TPaveStats
46  c1->Update();
47  TPaveStats *stats1 = (TPaveStats*)gr1->GetListOfFunctions()->FindObject("stats");
48  TPaveStats *stats2 = (TPaveStats*)gr2->GetListOfFunctions()->FindObject("stats");
49  stats1->SetTextColor(kBlue);
50  stats2->SetTextColor(kRed);
51  stats1->SetX1NDC(0.12); stats1->SetX2NDC(0.32); stats1->SetY1NDC(0.75);
52  stats2->SetX1NDC(0.72); stats2->SetX2NDC(0.92); stats2->SetY1NDC(0.78);
53  c1->Modified();
54  return c1;
55 }
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0)
Fit this graph with function with name fname.
Definition: TGraph.cxx:1024
float Float_t
Definition: RtypesCore.h:53
virtual void SetX2NDC(Double_t x2)
Definition: TPave.h:88
TCanvas * c1
Definition: legend1.C:2
Definition: Rtypes.h:61
R__EXTERN TStyle * gStyle
Definition: TStyle.h:423
A TMultiGraph is a collection of TGraph (or derived) objects.
Definition: TMultiGraph.h:37
int Int_t
Definition: RtypesCore.h:41
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
Definition: TList.cxx:497
The histogram statistics painter class.
Definition: TPaveStats.h:28
virtual void SetGrid(Int_t valuex=1, Int_t valuey=1)
Definition: TPad.h:326
TList * GetListOfFunctions() const
Definition: TGraph.h:126
virtual void SetMarkerColor(Color_t mcolor=1)
Definition: TAttMarker.h:51
virtual void Draw(Option_t *chopt="")
Draw this multigraph with its current attributes.
virtual void SetX1NDC(Double_t x1)
Definition: TPave.h:87
void SetOptFit(Int_t fit=1)
The type of information about fit parameters printed in the histogram statistics box can be selected ...
Definition: TStyle.cxx:1204
virtual void SetMarkerStyle(Style_t mstyle=1)
Definition: TAttMarker.h:53
The Canvas class.
Definition: TCanvas.h:48
double Double_t
Definition: RtypesCore.h:55
A TGraphErrors is a TGraph with error bars.
Definition: TGraphErrors.h:28
virtual void SetTextColor(Color_t tcolor=1)
Definition: TAttText.h:57
Definition: Rtypes.h:61
virtual void Add(TGraph *graph, Option_t *chopt="")
Add a new graph to the list of graphs.
virtual void Update()
Update canvas pad buffers.
Definition: TCanvas.cxx:2179
void Modified(Bool_t flag=1)
Definition: TPad.h:407
virtual void SetY1NDC(Double_t y1)
Definition: TPave.h:89