Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
hist028_THStack_multicolor.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_hist
3/// \notebook
4/// Use a THStack to show a 2-D hist with cells with different colors.
5/// ~~~{.cpp}
6/// root > .x multicolor.C
7/// root > .x multicolor.C(1)
8/// ~~~
9/// \macro_image
10/// \macro_code
11///
12/// \date August 2016
13/// \author Rene Brun
14
15#include "TCanvas.h"
16#include "TH2.h"
17#include "THStack.h"
18#include "TRandom.h"
19
21{
22 TCanvas *c1 = new TCanvas;
23 Int_t nbins = 20;
24 TH2F *h1 = new TH2F("h1", "h1", nbins, -4, 4, nbins, -4, 4);
26 TH2F *h2 = new TH2F("h2", "h2", nbins, -4, 4, nbins, -4, 4);
27 h2->SetFillColor(kRed);
28 TH2F *h3 = new TH2F("h3", "h3", nbins, -4, 4, nbins, -4, 4);
29 h3->SetFillColor(kYellow);
30 THStack *hs = new THStack("hs", "three plots");
31 hs->Add(h1);
32 hs->Add(h2);
33 hs->Add(h3);
34 TRandom r;
35 Int_t i;
36 for (i = 0; i < 20000; i++)
37 h1->Fill(r.Gaus(), r.Gaus());
38 for (i = 0; i < 200; i++) {
39 Int_t ix = (Int_t)r.Uniform(0, nbins);
40 Int_t iy = (Int_t)r.Uniform(0, nbins);
41 Int_t bin = h1->GetBin(ix, iy);
42 Double_t val = h1->GetBinContent(bin);
43 if (val <= 0)
44 continue;
45 if (!isStack)
46 h1->SetBinContent(bin, 0);
47 if (r.Rndm() > 0.5) {
48 if (!isStack)
49 h2->SetBinContent(bin, 0);
50 h3->SetBinContent(bin, val);
51 } else {
52 if (!isStack)
53 h3->SetBinContent(bin, 0);
54 h2->SetBinContent(bin, val);
55 }
56 }
57 hs->Draw("lego1");
58}
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
@ kRed
Definition Rtypes.h:66
@ kBlue
Definition Rtypes.h:66
@ kYellow
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
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition TAttFill.h:38
The Canvas class.
Definition TCanvas.h:23
virtual Int_t GetBin(Int_t binx, Int_t biny=0, Int_t binz=0) const
Return Global bin number corresponding to binx,y,z.
Definition TH1.cxx:4959
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
Definition TH1.cxx:3315
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content see convention for numbering bins in TH1::GetBin In case the bin number is greater th...
Definition TH1.cxx:9224
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
Definition TH1.cxx:5059
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:307
The Histogram stack class.
Definition THStack.h:40
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