Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
multigraph.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_graphs
3/// \notebook
4/// Create and Draw a TMultiGraph.
5///
6/// \macro_image
7/// \macro_code
8///
9/// \author Rene Brun
10
11void multigraph()
12{
14 auto c1 = new TCanvas("c1", "multigraph", 700, 500);
15 c1->SetGrid();
16
17 // draw a frame to define the range
18 auto mg = new TMultiGraph();
19
20 // create first graph
21 const Int_t n1 = 10;
22 Double_t px1[] = {-0.1, 0.05, 0.25, 0.35, 0.5, 0.61, 0.7, 0.85, 0.89, 0.95};
23 Double_t py1[] = {-1, 2.9, 5.6, 7.4, 9, 9.6, 8.7, 6.3, 4.5, 1};
24 Double_t ex1[] = {.05, .1, .07, .07, .04, .05, .06, .07, .08, .05};
25 Double_t ey1[] = {.8, .7, .6, .5, .4, .4, .5, .6, .7, .8};
26 auto gr1 = new TGraphErrors(n1, px1, py1, ex1, ey1);
27 gr1->SetMarkerColor(kBlue);
28 gr1->SetMarkerStyle(21);
29
30 gr1->Fit("gaus", "q");
31 auto func1 = (TF1 *)gr1->GetListOfFunctions()->FindObject("gaus");
32 func1->SetLineColor(kBlue);
33
34 mg->Add(gr1);
35
36 // create second graph
37 const Int_t n2 = 10;
38 Float_t x2[] = {-0.28, 0.005, 0.19, 0.29, 0.45, 0.56, 0.65, 0.80, 0.90, 1.01};
39 Float_t y2[] = {2.1, 3.86, 7, 9, 10, 10.55, 9.64, 7.26, 5.42, 2};
40 Float_t ex2[] = {.04, .12, .08, .06, .05, .04, .07, .06, .08, .04};
41 Float_t ey2[] = {.6, .8, .7, .4, .3, .3, .4, .5, .6, .7};
42 auto gr2 = new TGraphErrors(n2, x2, y2, ex2, ey2);
43 gr2->SetMarkerColor(kRed);
44 gr2->SetMarkerStyle(20);
45
46 gr2->Fit("pol5", "q");
47 auto func2 = (TF1 *)gr2->GetListOfFunctions()->FindObject("pol5");
48 func2->SetLineColor(kRed);
49 func2->SetLineStyle(kDashed);
50
51 mg->Add(gr2);
52
53 mg->Draw("ap");
54
55 // force drawing of canvas to generate the fit TPaveStats
56 c1->Update();
57
58 auto stats1 = (TPaveStats *)gr1->GetListOfFunctions()->FindObject("stats");
59 auto stats2 = (TPaveStats *)gr2->GetListOfFunctions()->FindObject("stats");
60
61 if (stats1 && stats2) {
62 stats1->SetTextColor(kBlue);
63 stats2->SetTextColor(kRed);
64 stats1->SetX1NDC(0.12);
65 stats1->SetX2NDC(0.32);
66 stats1->SetY1NDC(0.82);
67 stats2->SetX1NDC(0.72);
68 stats2->SetX2NDC(0.92);
69 stats2->SetY1NDC(0.75);
70 c1->Modified();
71 }
72}
int Int_t
Definition RtypesCore.h:45
float Float_t
Definition RtypesCore.h:57
double Double_t
Definition RtypesCore.h:59
@ kRed
Definition Rtypes.h:66
@ kBlue
Definition Rtypes.h:66
@ kDashed
Definition TAttLine.h:48
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char y2
R__EXTERN TStyle * gStyle
Definition TStyle.h:436
The Canvas class.
Definition TCanvas.h:23
1-Dim function class
Definition TF1.h:233
A TGraphErrors is a TGraph with error bars.
A TMultiGraph is a collection of TGraph (or derived) objects.
Definition TMultiGraph.h:34
The histogram statistics painter class.
Definition TPaveStats.h:18
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:1593
return c1
Definition legend1.C:41