Logo ROOT   6.10/09
Reference Guide
graphApply.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_graphs
3 /// \notebook
4 /// A macro to demonstrate the functionality of TGraph::Apply() method.
5 /// TGraph::Apply applies a function `f` to all the data TGraph points.
6 /// `f` may be a 1-D function TF1 or 2-d function TF2.
7 /// The Y values of the graph are replaced by the new values computed using
8 /// the function.
9 ///
10 /// \macro_image
11 /// \macro_code
12 ///
13 /// \author Miro Helbich
14 
15 void graphApply()
16 {
17  const Int_t npoints=3;
18  Double_t xaxis[npoints] = {1.,2.,3.};
19  Double_t yaxis[npoints] = {10.,20.,30.};
20  Double_t errorx[npoints] = {0.5,0.5,0.5};
21  Double_t errory[npoints] = {5.,5.,5.};
22 
23  Double_t exl[npoints] = {0.5,0.5,0.5};
24  Double_t exh[npoints] = {0.5,0.5,0.5};
25  Double_t eyl[npoints] = {5.,5.,5.};
26  Double_t eyh[npoints] = {5.,5.,5.};
27 
28  TGraph *gr1 = new TGraph(npoints,xaxis,yaxis);
29  TGraphErrors *gr2 = new TGraphErrors(npoints,xaxis,yaxis,errorx,errory);
30  TGraphAsymmErrors *gr3 = new TGraphAsymmErrors(npoints,xaxis,yaxis,exl,exh,eyl,eyh);
31  TF2 *ff = new TF2("ff","-1./y");
32 
33  TCanvas *c1 = new TCanvas("c1","c1");
34  c1->Divide(2,3);
35 
36  // TGraph
37  c1->cd(1);
38  gr1->DrawClone("A*");
39  c1->cd(2);
40  gr1->Apply(ff);
41  gr1->Draw("A*");
42 
43  // TGraphErrors
44  c1->cd(3);
45  gr2->DrawClone("A*");
46  c1->cd(4);
47  gr2->Apply(ff);
48  gr2->Draw("A*");
49 
50  // TGraphAsymmErrors
51  c1->cd(5);
52  gr3->DrawClone("A*");
53  c1->cd(6);
54  gr3->Apply(ff);
55  gr3->Draw("A*");
56 }
virtual TObject * DrawClone(Option_t *option="") const
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad...
Definition: TObject.cxx:226
return c1
Definition: legend1.C:41
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
Definition: TCanvas.cxx:679
int Int_t
Definition: RtypesCore.h:41
virtual void Apply(TF1 *f)
Apply function f to all the data points f may be a 1-D function TF1 or 2-d function TF2 The Y values ...
Definition: TGraph.cxx:552
virtual void Draw(Option_t *chopt="")
Draw this graph with its current attributes.
Definition: TGraph.cxx:745
TGraph with asymmetric error bars.
virtual void Apply(TF1 *f)
Apply a function to all data points y = f(x,y)
virtual void Apply(TF1 *f)
apply function to all the data points y = f(x,y)
A 2-Dim function with parameters.
Definition: TF2.h:29
The Canvas class.
Definition: TCanvas.h:31
double Double_t
Definition: RtypesCore.h:55
virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
Automatic pad generation by division.
Definition: TPad.cxx:1135
A Graph is a graphics object made of two arrays X and Y with npoints each.
Definition: TGraph.h:41
A TGraphErrors is a TGraph with error bars.
Definition: TGraphErrors.h:26