ROOT logo

From $ROOTSYS/tutorials/hist/h2proj.C

// Example displaying a 2D histogram with its two projections.
// Author: Olivier Couet
{
   TCanvas *c1 = new TCanvas("c1", "c1",900,900);
   gStyle->SetOptStat(0);
   
   // Create the three pads
   TPad *center_pad = new TPad("center_pad", "center_pad",0.0,0.0,0.6,0.6);
   center_pad->Draw();

   right_pad = new TPad("right_pad", "right_pad",0.55,0.0,1.0,0.6);
   right_pad->Draw();

   top_pad = new TPad("top_pad", "top_pad",0.0,0.55,0.6,1.0);
   top_pad->Draw();

   // Create, fill and project a 2D histogram.
   TH2F *h2 = new TH2F("h2","",40,-4,4,40,-20,20);
   Float_t px, py;
   for (Int_t i = 0; i < 25000; i++) {
      gRandom->Rannor(px,py);
      h2->Fill(px,5*py);
   }
   TH1D * projh2X = h2->ProjectionX();
   TH1D * projh2Y = h2->ProjectionY();

   // Drawing
   center_pad->cd();
   gStyle->SetPalette(1);
   h2->Draw("COL");

   top_pad->cd();
   projh2X->SetFillColor(kBlue+1);
   projh2X->Draw("bar");

   right_pad->cd();
   projh2Y->SetFillColor(kBlue-2);
   projh2Y->Draw("hbar");
   
   c1->cd();
   TLatex *t = new TLatex();
   t->SetTextFont(42);
   t->SetTextSize(0.02);
   t->DrawLatex(0.6,0.88,"This example demonstrate how to display");
   t->DrawLatex(0.6,0.85,"a histogram and its two projections.");
}
 h2proj.C:1
 h2proj.C:2
 h2proj.C:3
 h2proj.C:4
 h2proj.C:5
 h2proj.C:6
 h2proj.C:7
 h2proj.C:8
 h2proj.C:9
 h2proj.C:10
 h2proj.C:11
 h2proj.C:12
 h2proj.C:13
 h2proj.C:14
 h2proj.C:15
 h2proj.C:16
 h2proj.C:17
 h2proj.C:18
 h2proj.C:19
 h2proj.C:20
 h2proj.C:21
 h2proj.C:22
 h2proj.C:23
 h2proj.C:24
 h2proj.C:25
 h2proj.C:26
 h2proj.C:27
 h2proj.C:28
 h2proj.C:29
 h2proj.C:30
 h2proj.C:31
 h2proj.C:32
 h2proj.C:33
 h2proj.C:34
 h2proj.C:35
 h2proj.C:36
 h2proj.C:37
 h2proj.C:38
 h2proj.C:39
 h2proj.C:40
 h2proj.C:41
 h2proj.C:42
 h2proj.C:43
 h2proj.C:44
 h2proj.C:45
 h2proj.C:46
 h2proj.C:47