Loading [MathJax]/extensions/tex2jax.js
Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
graphpolar.C File Reference

Detailed Description

View in nbviewer Open in SWAN Create and draw a polar graph.

void graphpolar()
{
// Illustrates how to use TGraphPolar
TCanvas * CPol = new TCanvas("CPol","TGraphPolar Examples",1200,600);
CPol->Divide(2,1);
CPol->cd(1);
Double_t x[1000];
Double_t y[1000];
Double_t xval1[20];
Double_t yval1[20];
TF1 * fplot = new TF1("fplot","cos(2*x)*cos(20*x)",xmin,xmax);
for (Int_t ipt = 0; ipt < 1000; ipt++){
x[ipt] = ipt*(xmax-xmin)/1000+xmin;
y[ipt] = fplot->Eval(x[ipt]);
}
TGraphPolar * grP = new TGraphPolar(1000,x,y);
grP->SetLineColor(2);
grP->SetLineWidth(2);
grP->SetFillStyle(3012);
grP->SetFillColor(2);
grP->Draw("AFL");
for (Int_t ipt = 0; ipt < 20; ipt++){
xval1[ipt] = x[1000/20*ipt];
yval1[ipt] = y[1000/20*ipt];
}
TGraphPolar * grP1 = new TGraphPolar(20,xval1,yval1);
grP1->SetMarkerStyle(29);
grP1->SetMarkerSize(2);
grP1->SetMarkerColor(4);
grP1->SetLineColor(4);
grP1->Draw("CP");
// Update, otherwise GetPolargram returns 0
CPol->Update();
grP1->GetPolargram()->SetNdivPolar(703);
CPol->cd(2);
Double_t x2[30];
Double_t y2[30];
Double_t ex[30];
Double_t ey[30];
for (Int_t ipt = 0; ipt < 30; ipt++){
x2[ipt] = x[1000/30*ipt];
y2[ipt] = 1.2 + 0.4*sin(TMath::Pi()*2*ipt/30);
ex[ipt] = 0.2+0.1*cos(2*TMath::Pi()/30*ipt);
ey[ipt] = 0.2;
}
TGraphPolar * grPE = new TGraphPolar(30,x2,y2,ex,ey);
grPE->SetMarkerStyle(22);
grPE->SetMarkerSize(1.5);
grPE->SetMarkerColor(5);
grPE->SetLineColor(6);
grPE->SetLineWidth(2);
grPE->Draw("EP");
CPol->Update();
grPE->GetPolargram()->SetTextSize(0.03);
grPE->GetPolargram()->SetTwoPi();
}
static const double x2[5]
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
float xmin
float xmax
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition TAttFill.h:37
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
Definition TAttFill.h:39
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition TAttLine.h:43
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Definition TAttLine.h:40
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
Definition TAttMarker.h:38
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
Definition TAttMarker.h:40
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
Definition TAttMarker.h:41
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
Definition TAttText.h:44
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
Definition TAttText.h:47
The Canvas class.
Definition TCanvas.h:23
TVirtualPad * cd(Int_t subpadnumber=0) override
Set current canvas & pad.
Definition TCanvas.cxx:706
void Update() override
Update canvas pad buffers.
Definition TCanvas.cxx:2502
1-Dim function class
Definition TF1.h:213
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
Evaluate this function.
Definition TF1.cxx:1440
To draw a polar graph.
Definition TGraphPolar.h:23
TGraphPolargram * GetPolargram()
Definition TGraphPolar.h:40
void Draw(Option_t *options="")
Draw TGraphPolar.
void SetRangePolar(Double_t tmin, Double_t tmax)
Allows to change range Polar.
void SetTwoPi()
Set range from 0 to 2*pi.
void SetNdivPolar(Int_t Ndiv=508)
Set the number of Polar divisions: enter a number ij with 0<i<99 and 0<j<99.
void SetToRadian()
The Polar circle is labelled using radian.
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
Automatic pad generation by division.
Definition TPad.cxx:1178
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
Author
Olivier Couet

Definition in file graphpolar.C.