Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
candleplotstack.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_hist
3 /// \notebook
4 /// Example showing how a THStack with candle plot option.
5 ///
6 /// \macro_image
7 /// \macro_code
8 ///
9 /// \authors Georg Troska, Olivier Couet
10 
11 void candleplotstack()
12 {
13  gStyle->SetTimeOffset(0);
14  TRandom *rng = new TRandom();
15  TDatime *dateBegin = new TDatime(2010,1,1,0,0,0);
16  TDatime *dateEnd = new TDatime(2011,1,1,0,0,0);
17  int bins = 1000;
18  TH2I *h1 = new TH2I("h1","Machine A",6,dateBegin->Convert(),dateEnd->Convert(),bins,0,1000);
19  TH2I *h2 = new TH2I("h2","Machine B",6,dateBegin->Convert(),dateEnd->Convert(),bins,0,1000);
20  TH2I *hsum = new TH2I("h4","Sum",6,dateBegin->Convert(),dateEnd->Convert(),bins,0,1000);
21 
22  float Rand;
23  for (int i = dateBegin->Convert(); i < dateEnd->Convert(); i+=86400*30) {
24  for (int j = 0; j < 1000; j++) {
25  Rand = rng->Gaus(500+sin(i/10000000.)*100,50); h1->Fill(i,Rand); hsum->Fill(i,Rand);
26  Rand = rng->Gaus(500+sin(i/12000000.)*100,50); h2->Fill(i,Rand); hsum->Fill(i,Rand);
27  }
28  }
29 
30  h2->SetLineColor(kRed);
31  hsum->SetFillColor(kGreen);
32  TCanvas *c1 = new TCanvas();
33 
34  THStack *hs = new THStack("hs","Machine A+B");
35  hs->Add(h1);
36  hs->Add(h2,"candle2");
37  hs->Add(hsum, "violin1");
38  hs->Draw("candle3");
39  hs->GetXaxis()->SetNdivisions(410);
40 
41  gPad->SetGrid(1,0);
42 
43  hs->GetXaxis()->SetTimeDisplay(1);
44  hs->GetXaxis()->SetTimeFormat("%m/%y");
45  hs->GetXaxis()->SetTitle("Date [month/year]");
46 
47  c1->Modified();
48 
49  gPad->BuildLegend(0.75,0.75,0.95,0.95,"");
50 }