-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[tutorials] Rename and comment and modernise graphs tutorials.
Co-authored-by: Daniel P. Astudillo <[email protected]> Co-authored-by: Emanuele Chiamulera <[email protected]>
- Loading branch information
1 parent
bb00507
commit 7793a83
Showing
59 changed files
with
1,434 additions
and
251 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
-3.000000 -0.989992 | ||
-2.684211 -0.897212 | ||
-2.368421 -0.715699 | ||
-2.052632 -0.463406 | ||
-1.736842 -0.165284 | ||
-1.421053 0.149185 | ||
-1.105263 0.448899 | ||
-0.789474 0.704219 | ||
-0.473684 0.889894 | ||
-0.157895 0.987561 | ||
0.157895 0.987561 | ||
0.473684 0.889894 | ||
0.789474 0.704219 | ||
1.105263 0.448899 | ||
1.421053 0.149185 | ||
1.736842 -0.165284 | ||
2.052632 -0.463406 | ||
2.368421 -0.715699 | ||
2.684211 -0.897212 | ||
3.000000 -0.989992 |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/// \file | ||
/// \ingroup tutorial_graphs | ||
/// \notebook -js | ||
/// Create and draw a graph with error bars. If more graphs are needed, see the | ||
/// [gr03_err2gr.C](https://root.cern/doc/master/gerrors2_8C.html) tutorial | ||
/// | ||
/// See the [TGraphErrors documentation](https://root.cern/doc/master/classTGraphErrors.html) | ||
/// | ||
/// \macro_image | ||
/// \macro_code | ||
/// \author Rene Brun | ||
|
||
void gr002_err_1gr() { | ||
TCanvas *c1 = new TCanvas("c1","A Simple Graph with error bars",200,10,700,500); | ||
|
||
c1->SetGrid(); | ||
c1->GetFrame()->SetBorderSize(12); | ||
|
||
// We will use the constructor requiring: the number of points, arrays containing the x-and y-axis values, and arrays with the x- andy-axis errors | ||
const Int_t n = 10; | ||
Float_t x[n] = {-0.22, 0.05, 0.25, 0.35, 0.5, 0.61,0.7,0.85,0.89,0.95}; | ||
Float_t y[n] = {1,2.9,5.6,7.4,9,9.6,8.7,6.3,4.5,1}; | ||
Float_t ex[n] = {.05,.1,.07,.07,.04,.05,.06,.07,.08,.05}; | ||
Float_t ey[n] = {.8,.7,.6,.5,.4,.4,.5,.6,.7,.8}; | ||
|
||
// If all x-axis errors should zero, just provide a single 0 in place of ex | ||
TGraphErrors *gr = new TGraphErrors(n,x,y,ex,ey); | ||
|
||
gr->SetTitle("TGraphErrors Example"); | ||
gr->SetMarkerColor(4); | ||
gr->SetMarkerStyle(21); | ||
|
||
// To draw in a new/empty canvas or pad, include the option "A" so that the axes are drawn (leave it out if the graph is to be drawn on top of an existing plot | ||
gr->Draw("ALP"); | ||
|
||
c1->Update(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
/// \file | ||
/// \ingroup tutorial_graphs | ||
/// \notebook -js | ||
/// Create and draw two graphs with error bars, superposed on the same canvas | ||
/// | ||
/// We first draw an empty frame with the axes, then draw the graphs on top of it | ||
/// Note that the graphs should have the same or very close ranges (in both axis), | ||
/// otherwise they may not be visible in the frame. | ||
/// | ||
/// Alternatively, an automatic axis scaling can be achieved via a | ||
/// [TMultiGraph](https://root.cern/doc/master/classTMultiGraph.html) | ||
/// | ||
/// See the [TGraphErrors documentation](https://root.cern/doc/master/classTGraphErrors.html) | ||
/// | ||
/// \macro_image | ||
/// \macro_code | ||
/// \author Rene Brun | ||
|
||
void gr003_err_2gr() { | ||
TCanvas *c1 = new TCanvas("c1","2 graphs with errors",200,10,700,500); | ||
c1->SetGrid(); | ||
|
||
// draw a frame to define the range | ||
TH1F *hr = c1->DrawFrame(-0.4,0,1.2,12); | ||
hr->SetXTitle("X title"); | ||
hr->SetYTitle("Y title"); | ||
c1->GetFrame()->SetBorderSize(12); | ||
|
||
// create first graph | ||
// We will use the constructor requiring: the number of points, arrays containing the x-and y-axis values, and arrays with the x- andy-axis errors | ||
const Int_t n1 = 10; | ||
Double_t xval1[] = {-0.22, 0.05, 0.25, 0.35, 0.5, 0.61,0.7,0.85,0.89,0.95}; | ||
Double_t yval1[] = {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}; | ||
// If all x-axis errors should zero, just provide a single 0 in place of ex1 | ||
TGraphErrors *gr1 = new TGraphErrors(n1,xval1,yval1,ex1,ey1); | ||
gr1->SetMarkerColor(kBlue); | ||
gr1->SetMarkerStyle(21); | ||
// Since we already have a frame in the canvas, we draw the graph without the option "A" (which draws axes for this graph) | ||
gr1->Draw("LP"); | ||
|
||
// create second graph | ||
const Int_t n2 = 10; | ||
Float_t xval2[] = {-0.28, 0.005, 0.19, 0.29, 0.45, 0.56,0.65,0.80,0.90,1.01}; | ||
Float_t yval2[] = {0.82,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}; | ||
TGraphErrors *gr2 = new TGraphErrors(n2,xval2,yval2,ex2,ey2); | ||
gr2->SetMarkerColor(kRed); | ||
gr2->SetMarkerStyle(20); | ||
gr2->Draw("LP"); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
/// \file | ||
/// \ingroup tutorial_graphs | ||
/// \notebook | ||
/// | ||
/// This tutorial demonstrates the use of TGraphAsymmErrors to plot a graph with asymmetrical errors on both the x and y axes. | ||
/// The errors for the x values are divided into low (left side of the marker) and high (right side of the marker) errors. | ||
/// Similarly, for the y values, there are low (lower side of the marker) and high (upper side of the marker) errors. | ||
/// | ||
/// \macro_image | ||
/// \macro_code | ||
/// | ||
/// \author Miro Helbich | ||
|
||
void gr004_err_asym() { | ||
TCanvas *c2 = new TCanvas("c2","", 700, 500); | ||
|
||
c2->SetGrid(); | ||
const Int_t npoints=3; | ||
Double_t xaxis[npoints] = {1.,2.,3.}; | ||
Double_t yaxis[npoints] = {10.,20.,30.}; | ||
|
||
Double_t exl[npoints] = {0.5,0.2,0.1}; //Lower x errors | ||
Double_t exh[npoints] = {0.5,0.3,0.4}; //Higher x errors | ||
Double_t eyl[npoints] = {3.,5.,4.}; //Lower y errors | ||
Double_t eyh[npoints] = {3.,5.,4.}; //Higher y errors | ||
|
||
TGraphAsymmErrors *gr = new TGraphAsymmErrors(npoints,xaxis,yaxis,exl,exh,eyl,eyh); //Create the TGraphAsymmErrors object with data and asymmetrical errors | ||
|
||
gr->SetTitle("A simple graph with asymmetrical errors"); | ||
gr->Draw("A*"); //"A" = draw axes and "*" = draw markers at the points with error bars | ||
} |
Oops, something went wrong.