Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
graphpolar.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_graphs
3/// \notebook
4/// Create and draw a polar graph.
5///
6/// \macro_image
7/// \macro_code
8///
9/// \author Olivier Couet
10
11void graphpolar()
12{
13 // Illustrates how to use TGraphPolar
14
15 TCanvas * CPol = new TCanvas("CPol","TGraphPolar Examples",1200,600);
16 CPol->Divide(2,1);
17 CPol->cd(1);
18
19 Double_t xmin=0;
21
22 Double_t x[1000];
23 Double_t y[1000];
24 Double_t xval1[20];
25 Double_t yval1[20];
26
27 TF1 * fplot = new TF1("fplot","cos(2*x)*cos(20*x)",xmin,xmax);
28
29 for (Int_t ipt = 0; ipt < 1000; ipt++){
30 x[ipt] = ipt*(xmax-xmin)/1000+xmin;
31 y[ipt] = fplot->Eval(x[ipt]);
32 }
33
34 TGraphPolar * grP = new TGraphPolar(1000,x,y);
35 grP->SetLineColor(2);
36 grP->SetLineWidth(2);
37 grP->SetFillStyle(3012);
38 grP->SetFillColor(2);
39 grP->Draw("AFL");
40
41 for (Int_t ipt = 0; ipt < 20; ipt++){
42 xval1[ipt] = x[1000/20*ipt];
43 yval1[ipt] = y[1000/20*ipt];
44 }
45
47 grP1->SetMarkerStyle(29);
48 grP1->SetMarkerSize(2);
49 grP1->SetMarkerColor(4);
50 grP1->SetLineColor(4);
51 grP1->Draw("CP");
52
53 // Update, otherwise GetPolargram returns 0
54 CPol->Update();
55 if (grP1->GetPolargram()) {
56 grP1->GetPolargram()->SetTextColor(8);
57 grP1->GetPolargram()->SetRangePolar(-TMath::Pi(),TMath::Pi());
58 grP1->GetPolargram()->SetNdivPolar(703);
59 grP1->GetPolargram()->SetToRadian();
60 }
61
62 CPol->cd(2);
63 Double_t x2[30];
64 Double_t y2[30];
65 Double_t ex[30];
66 Double_t ey[30];
67 for (Int_t ipt = 0; ipt < 30; ipt++){
68 x2[ipt] = x[1000/30*ipt];
69 y2[ipt] = 1.2 + 0.4*sin(TMath::Pi()*2*ipt/30);
70 ex[ipt] = 0.2+0.1*cos(2*TMath::Pi()/30*ipt);
71 ey[ipt] = 0.2;
72 }
73
74 TGraphPolar * grPE = new TGraphPolar(30,x2,y2,ex,ey);
75 grPE->SetMarkerStyle(22);
76 grPE->SetMarkerSize(1.5);
77 grPE->SetMarkerColor(5);
78 grPE->SetLineColor(6);
79 grPE->SetLineWidth(2);
80 grPE->Draw("EP");
81 // Update, otherwise GetPolargram returns 0
82 CPol->Update();
83
84 if (grPE->GetPolargram()) {
85 grPE->GetPolargram()->SetTextSize(0.03);
86 grPE->GetPolargram()->SetTwoPi();
87 grPE->GetPolargram()->SetToRadian();
88 }
89}
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char y2
float xmin
float xmax
The Canvas class.
Definition TCanvas.h:23
1-Dim function class
Definition TF1.h:233
To draw a polar graph.
Definition TGraphPolar.h:23
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
Double_t ey[n]
Definition legend1.C:17
Double_t ex[n]
Definition legend1.C:17
constexpr Double_t Pi()
Definition TMath.h:37