sparsehist.C: Evaluate the performance of THnSparse vs THnF (or Float_t arrays) | Histograms | twoscales.C: example of macro illustrating how to superimpose two histograms |
// Example of a canvas showing two histograms with different scales. // The second histogram is drawn in a transparent pad //Author: Rene Brun void transpad() { 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); TRandom r; 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 TPaveStats *ps1 = (TPaveStats*)h1->GetListOfFunctions()->FindObject("stats"); ps1->SetX1NDC(0.4); ps1->SetX2NDC(0.6); pad1->Modified(); c1->cd(); //compute the pad range with suitable margins Double_t ymin = 0; Double_t ymax = 2000; Double_t dy = (ymax-ymin)/0.8; //10 per cent margins top and bottom Double_t xmin = -3; Double_t xmax = 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->SetLabelColor(kRed); axis->Draw(); } transpad.C:1 transpad.C:2 transpad.C:3 transpad.C:4 transpad.C:5 transpad.C:6 transpad.C:7 transpad.C:8 transpad.C:9 transpad.C:10 transpad.C:11 transpad.C:12 transpad.C:13 transpad.C:14 transpad.C:15 transpad.C:16 transpad.C:17 transpad.C:18 transpad.C:19 transpad.C:20 transpad.C:21 transpad.C:22 transpad.C:23 transpad.C:24 transpad.C:25 transpad.C:26 transpad.C:27 transpad.C:28 transpad.C:29 transpad.C:30 transpad.C:31 transpad.C:32 transpad.C:33 transpad.C:34 transpad.C:35 transpad.C:36 transpad.C:37 transpad.C:38 transpad.C:39 transpad.C:40 transpad.C:41 transpad.C:42 transpad.C:43 transpad.C:44 transpad.C:45 transpad.C:46 transpad.C:47 transpad.C:48 transpad.C:49 transpad.C:50 transpad.C:51 transpad.C:52 transpad.C:53 |
|