Logo ROOT  
Reference Guide
histpalettecolor.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_hist
3/// \notebook
4/// Palette coloring for histogram is activated thanks to the options `PFC`
5/// (Palette Fill Color), `PLC` (Palette Line Color) and `AMC` (Palette Marker Color).
6/// When one of these options is given to `TH1::Draw` the histogram get its color
7/// from the current color palette defined by `gStyle->SetPalette(...)`. The color
8/// is determined according to the number of objects having palette coloring in
9/// the current pad.
10///
11/// In this example five histograms are displayed with palette coloring for lines and
12/// and marker. The histograms are drawn with makers and error bars and one can see
13/// the color of each histogram is picked inside the default palette `kBird`.
14///
15/// \macro_image
16/// \macro_code
17///
18/// \author Olivier Couet
19
20void histpalettecolor()
21{
22 auto C = new TCanvas();
23
26
27 auto h1 = new TH1F ("h1","Histogram drawn with full circles",100,-4,4);
28 auto h2 = new TH1F ("h2","Histogram drawn with full squares",100,-4,4);
29 auto h3 = new TH1F ("h3","Histogram drawn with full triangles up",100,-4,4);
30 auto h4 = new TH1F ("h4","Histogram drawn with full triangles down",100,-4,4);
31 auto h5 = new TH1F ("h5","Histogram drawn with empty circles",100,-4,4);
32
33 TRandom3 rng;
34 Double_t px,py;
35 for (Int_t i = 0; i < 25000; i++) {
36 rng.Rannor(px,py);
37 h1->Fill(px,10.);
38 h2->Fill(px, 8.);
39 h3->Fill(px, 6.);
40 h4->Fill(px, 4.);
41 h5->Fill(px, 2.);
42 }
43
45 h2->SetMarkerStyle(kFullSquare);
46 h3->SetMarkerStyle(kFullTriangleUp);
47 h4->SetMarkerStyle(kFullTriangleDown);
48 h5->SetMarkerStyle(kOpenCircle);
49
50 h1->Draw("PLC PMC");
51 h2->Draw("SAME PLC PMC");
52 h3->Draw("SAME PLC PMC");
53 h4->Draw("SAME PLC PMC");
54 h5->Draw("SAME PLC PMC");
55
56 gPad->BuildLegend();
57}
int Int_t
Definition: RtypesCore.h:45
const Bool_t kFALSE
Definition: RtypesCore.h:101
double Double_t
Definition: RtypesCore.h:59
@ kFullTriangleDown
Definition: TAttMarker.h:52
@ kFullSquare
Definition: TAttMarker.h:51
@ kFullTriangleUp
Definition: TAttMarker.h:51
@ kFullCircle
Definition: TAttMarker.h:51
@ kOpenCircle
Definition: TAttMarker.h:52
R__EXTERN TStyle * gStyle
Definition: TStyle.h:414
#define gPad
Definition: TVirtualPad.h:288
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
Definition: TAttMarker.h:40
The Canvas class.
Definition: TCanvas.h:23
1-D histogram with a float per channel (see TH1 documentation)}
Definition: TH1.h:574
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
Definition: TH1.cxx:3348
void Draw(Option_t *option="") override
Draw this histogram with options.
Definition: TH1.cxx:3070
Random number generator class based on M.
Definition: TRandom3.h:27
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
Definition: TRandom.cxx:500
void SetOptTitle(Int_t tit=1)
Definition: TStyle.h:319
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
Definition: TStyle.cxx:1590
TH1F * h1
Definition: legend1.C:5
static double C[]