Logo ROOT  
Reference Guide
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_hist
3/// \notebook
4/// Example of bar charts with 1-d histograms.
6/// \macro_image
7/// \macro_code
9/// \author Rene Brun
11TCanvas *hbars() {
12 // Try to open first the file cernstaff.root in tutorials/tree directory
13 TString filedir = gROOT->GetTutorialDir();
14 filedir += TString("/tree/");
15 TString filename = "cernstaff.root";
16 bool fileNotFound = gSystem->AccessPathName(filename); // note opposite return code
18 // If file is not found try to generate it using the macro tree/cernbuild.C
19 if (fileNotFound) {
20 TString macroName = filedir + "cernbuild.C";
21 if (!gInterpreter->IsLoaded(macroName)) gInterpreter->LoadMacro(macroName);
22 gROOT->ProcessLineFast("cernbuild()");
23 }
25 if (!f) {
26 Error("hbars","file cernstaff.root not found");
27 return 0;
28 }
29 TTree *T = (TTree*)f->Get("T");
30 if (!T) {
31 Error("hbars","Tree T is not present in file %s",f->GetName() );
32 return 0;
33 }
34 T->SetFillColor(45);
35 TCanvas *c1 = new TCanvas("c1","histograms with bars",700,800);
36 c1->SetFillColor(42);
37 c1->Divide(1,2);
39 // Horizontal bar chart
40 c1->cd(1); gPad->SetGrid(); gPad->SetLogx(); gPad->SetFrameFillColor(33);
41 T->Draw("Nation","","hbar2");
43 // Vertical bar chart
44 c1->cd(2); gPad->SetGrid(); gPad->SetFrameFillColor(33);
45 T->Draw("Division>>hDiv","","goff");
46 TH1F *hDiv = (TH1F*)gDirectory->Get("hDiv");
47 hDiv->SetStats(0);
48 TH1F *hDivFR = (TH1F*)hDiv->Clone("hDivFR");
49 T->Draw("Division>>hDivFR","Nation==\"FR\"","goff");
50 hDiv->SetBarWidth(0.45);
51 hDiv->SetBarOffset(0.1);
52 hDiv->SetFillColor(49);
53 TH1 *h1 = hDiv->DrawCopy("bar2");
54 hDivFR->SetBarWidth(0.4);
55 hDivFR->SetBarOffset(0.55);
56 hDivFR->SetFillColor(50);
57 TH1 *h2 = hDivFR->DrawCopy("bar2,same");
59 TLegend *legend = new TLegend(0.55,0.65,0.76,0.82);
60 legend->AddEntry(h1,"All nations","f");
61 legend->AddEntry(h2,"French only","f");
62 legend->Draw();
64 c1->cd();
65 delete f;
66 return c1;
#define f(i)
Definition: RSha256.hxx:104
#define gDirectory
Definition: TDirectory.h:348
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
Definition: TError.cxx:187
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 Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
#define gInterpreter
Definition: TInterpreter.h:564
#define gROOT
Definition: TROOT.h:404
R__EXTERN TSystem * gSystem
Definition: TSystem.h:559
#define gPad
Definition: TVirtualPad.h:288
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition: TAttFill.h:37
The Canvas class.
Definition: TCanvas.h:23
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
Definition: TFile.h:54
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
Definition: TFile.cxx:4019
1-D histogram with a float per channel (see TH1 documentation)}
Definition: TH1.h:574
TH1 is the base class of all histogram classes in ROOT.
Definition: TH1.h:58
virtual void SetBarOffset(Float_t offset=0.25)
Set the bar offset as fraction of the bin width for drawing mode "B".
Definition: TH1.h:358
virtual TH1 * DrawCopy(Option_t *option="", const char *name_postfix="_copy") const
Copy this histogram and Draw in the current pad.
Definition: TH1.cxx:3117
TObject * Clone(const char *newname="") const override
Make a complete copy of the underlying object.
Definition: TH1.cxx:2737
virtual void SetBarWidth(Float_t width=0.5)
Set the width of bars as fraction of the bin width for drawing mode "B".
Definition: TH1.h:359
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
Definition: TH1.cxx:8865
This class displays a legend box (TPaveText) containing several legend entries.
Definition: TLegend.h:23
TLegendEntry * AddEntry(const TObject *obj, const char *label="", Option_t *option="lpf")
Add a new entry to this legend.
Definition: TLegend.cxx:330
void Draw(Option_t *option="") override
Draw this legend with its current attributes.
Definition: TLegend.cxx:423
Basic string class.
Definition: TString.h:136
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
Definition: TSystem.cxx:1296
A TTree represents a columnar dataset.
Definition: TTree.h:79
return c1
Definition: legend1.C:41
TH1F * h1
Definition: legend1.C:5
double T(double x)
Definition: ChebyshevPol.h:34