ROOT
Version master
master
v6.34
v6.32
v6.30
v6.28
v6.26
v6.24
v6.22
v6.20
v6.18
v6.16
v6.14
v6.12
v6.10
v6.08
v6.06
v6.04
Reference Guide
►
ROOT
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
gr001_simple.C
Go to the documentation of this file.
1
/// \file
2
/// \ingroup tutorial_graphs
3
/// \notebook
4
/// \preview This tutorial demonstrates how to create simple graphs in ROOT. The example is divided into two sections:
5
/// - The first section plots data generated from arrays.
6
/// - The second section plots data read from a text file.
7
///
8
/// \macro_image
9
/// \macro_code
10
///
11
/// \author Rene Brun
12
13
#include<fstream>
//Include the library for reading the data file
14
15
void
gr001_simple
() {
16
TCanvas
*
c1
=
new
TCanvas
(
"c1"
,
"Two simple graphs"
,200,10,700,500);
17
18
c1
->Divide(2,1);
//Dividing the canvas in subpads for distinguishing the two examples, [See documentation](https://root.cern/doc/master/classTCanvas.html)
19
20
//FIRST EXAMPLE (Available data)
21
c1
->cd(1);
22
23
const
Int_t
n
= 20;
//Fill the arrays x and y with the data points
24
Double_t
x
[
n
],
y
[
n
];
25
for
(
Int_t
i=0;i<
n
;i++) {
26
x
[i] = i*0.1;
27
y
[i] = 10*sin(
x
[i]+0.2);
28
printf
(
" i %i %f %f \n"
,i,
x
[i],
y
[i]);
29
}
30
31
TGraph
*
gr1
=
new
TGraph
(
n
,
x
,
y
);
//Create a TGraph object, storing the number of data n and the x, y variables
32
33
//Set the color, width and style for the markers and line
34
gr1
->SetLineColor(2);
35
gr1
->SetLineWidth(4);
36
gr1
->SetMarkerColor(4);
37
gr1
->SetMarkerStyle(21);
38
gr1
->SetTitle(
"Graph from available data"
);
//Choose title for the graph
39
gr1
->GetXaxis()->SetTitle(
"X title"
);
//Choose title for the axis
40
gr1
->GetYaxis()->SetTitle(
"Y title"
);
41
42
//Uncomment the following line to set a custom range for the x-axis (respectively for the y-axis):
43
//gr1->GetXaxis()->SetRangeUser(0, 1.8);
44
45
gr1
->Draw(
"ACP"
);
//"A" draw axes, "C" = draw a smooth line through the markers (optional) and "P" = draw markers for data points
46
//Optional customization can be done on a ROOT interactive session
47
48
49
//SECOND EXAMPLE (Data stored in a text file)
50
c1
->cd(2);
51
52
const
Int_t
m
= 20;
//Known number of data points in the file
53
Double_t
w
[
m
], z[
m
];
54
55
std::ifstream file(
gROOT
->GetTutorialDir() +
"/visualisation/graphs/data_basic.txt"
);
// Open the data file
56
57
// Use a for loop to read the data
58
for
(
Int_t
i = 0; i <
m
; i++) {
59
file >>
w
[i] >> z[i];
//Fill the arrays with the data from the file
60
printf
(
" i %i %f %f \n"
,i,
w
[i],z[i]);
61
}
62
63
file.close();
//Close the file after reading
64
65
TGraph
*
gr2
=
new
TGraph
(
m
,
w
, z);
//Create a TGraph object for the file data
66
gr2
->SetLineColor(4);
67
gr2
->SetLineWidth(2);
68
gr2
->SetMarkerColor(2);
69
gr2
->SetMarkerStyle(20);
70
gr2
->SetTitle(
"Graph from data file"
);
71
gr2
->GetXaxis()->SetTitle(
"W title"
);
72
gr2
->GetYaxis()->SetTitle(
"Z title"
);
73
74
75
gr2
->Draw(
"ACP"
);
76
}
77
Int_t
int Int_t
Definition
RtypesCore.h:45
Double_t
double Double_t
Definition
RtypesCore.h:59
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:358
w
winID w
Definition
TGWin32VirtualGLProxy.cxx:39
gROOT
#define gROOT
Definition
TROOT.h:406
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
TCanvas
The Canvas class.
Definition
TCanvas.h:23
TGraph
A TGraph is an object made of two arrays X and Y with npoints each.
Definition
TGraph.h:41
y
Double_t y[n]
Definition
legend1.C:17
c1
return c1
Definition
legend1.C:41
x
Double_t x[n]
Definition
legend1.C:17
n
const Int_t n
Definition
legend1.C:16
m
TMarker m
Definition
textangle.C:8
tutorials
visualisation
graphs
gr001_simple.C
ROOT master - Reference Guide Generated on Mon Feb 24 2025 14:45:13 (GVA Time) using Doxygen 1.10.0