Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
hist016_TH1_different_scales_canvas.C File Reference

Detailed Description

View in nbviewer Open in SWAN
Example of a canvas showing two histograms with different scales.

The second histogram is drawn in a transparent pad

{
TCanvas *c1 = new TCanvas("c1", "transparent pad", 200, 10, 700, 500);
TPad *pad1 = new TPad("pad1", "", 0, 0, 1, 1);
TPad *pad2 = new TPad("pad2", "", 0, 0, 1, 1);
pad2->SetFillStyle(4000); // will be transparent
pad1->Draw();
pad1->cd();
TH1F *h1 = new TH1F("h1", "h1", 100, -3, 3);
TH1F *h2 = new TH1F("h2", "h2", 100, -3, 3);
for (Int_t i = 0; i < 100000; i++) {
Double_t x1 = r.Gaus(-1, 0.5);
Double_t x2 = r.Gaus(1, 1.5);
if (i < 1000)
h1->Fill(x1);
h2->Fill(x2);
}
h1->Draw();
pad1->Update(); // this will force the generation of the "stats" box
ps1->SetX1NDC(0.4);
ps1->SetX2NDC(0.6);
pad1->Modified();
c1->cd();
// compute the pad range with suitable margins
Double_t ymax = 2000;
Double_t dy = (ymax - ymin) / 0.8; // 10 per cent margins top and bottom
Double_t xmin = -3;
Double_t dx = (xmax - xmin) / 0.8; // 10 per cent margins left and right
pad2->Range(xmin - 0.1 * dx, ymin - 0.1 * dy, xmax + 0.1 * dx, ymax + 0.1 * dy);
pad2->Draw();
pad2->cd();
h2->SetLineColor(kRed);
h2->Draw("][sames");
pad2->Update();
TPaveStats *ps2 = (TPaveStats *)h2->GetListOfFunctions()->FindObject("stats");
ps2->SetX1NDC(0.65);
ps2->SetX2NDC(0.85);
ps2->SetTextColor(kRed);
// draw axis on the right side of the pad
TGaxis *axis = new TGaxis(xmax, ymin, xmax, ymax, ymin, ymax, 50510, "+L");
axis->Draw();
}
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
@ kRed
Definition Rtypes.h:66
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 GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
float xmin
float ymin
float xmax
float ymax
The Canvas class.
Definition TCanvas.h:23
The axis painter class.
Definition TGaxis.h:26
void SetLabelColor(Int_t labelcolor)
Definition TGaxis.h:106
1-D histogram with a float per channel (see TH1 documentation)
Definition TH1.h:645
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
Definition TH1.cxx:3315
void Draw(Option_t *option="") override
Draw this histogram with options.
Definition TH1.cxx:3037
TList * GetListOfFunctions() const
Definition TH1.h:260
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
Definition TList.cxx:576
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Definition TObject.cxx:292
The most important graphics class in the ROOT system.
Definition TPad.h:28
The histogram statistics painter class.
Definition TPaveStats.h:18
This is the base class for the ROOT Random number generators.
Definition TRandom.h:27
return c1
Definition legend1.C:41
TH1F * h1
Definition legend1.C:5
Date
November 2022
Author
Rene Brun

Definition in file hist016_TH1_different_scales_canvas.C.