Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
TPie.h
Go to the documentation of this file.
1// @(#)root/graf:$Id$
2// Author: Guido Volpi, Olivier Couet 03/11/2006
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TPie
13#define ROOT_TPie
14
15#include <TNamed.h>
16#include <TAttText.h>
17#include <TString.h>
18
19class TH1;
20class TPieSlice;
21class TLegend;
22
23class TPie : public TNamed , public TAttText {
24private:
26 void DrawGhost();
27
28 Float_t fSum; ///<!Sum for the slice values
29 Float_t *fSlices{nullptr}; ///<!Subdivisions of the slices
30 TLegend *fLegend{nullptr}; ///<!Legend for this piechart
31
32protected:
33 Double_t fX; ///< X coordinate of the pie centre
34 Double_t fY; ///< Y coordinate of the pie centre
35 Double_t fRadius; ///< Radius Pie radius
36 Double_t fAngularOffset; ///< Offset angular offset for the first slice
37 Float_t fLabelsOffset; ///< LabelsOffset offset of label
38 TString fLabelFormat; ///< Format format of the slices' label
39 TString fValueFormat; ///< Vform numeric format for the value
40 TString fFractionFormat; ///< Rform numeric format for the fraction of a slice
41 TString fPercentFormat; ///< Pfrom numeric format for the percent of a slice
42 Int_t fNvals; ///< Number of elements
43 TPieSlice **fPieSlices{nullptr}; ///<[fNvals] Slice array of this pie-chart
44 Bool_t fIs3D; ///<! true if the pseudo-3d is enabled
45 Double_t fHeight; ///< Height of the slice in pixel
46 Float_t fAngle3D; ///< The angle of the pseudo-3d view
47
48public:
50 TPie(const char *,const char *, Int_t);
51 TPie(const char *,const char *, Int_t, Double_t *, Int_t *cols = nullptr, const char *lbls[] = nullptr);
52 TPie(const char *,const char *, Int_t, Float_t *, Int_t *cols = nullptr, const char *lbls[] = nullptr);
53 TPie(const TH1 *h);
54 TPie(const TPie&);
55 ~TPie() override;
56
59 void Draw(Option_t *option="l") override; // *MENU*
60 void ExecuteEvent(Int_t,Int_t,Int_t) override;
65 const char* GetEntryLabel(Int_t);
71 const char *GetFractionFormat() { return fFractionFormat.Data(); }
73 const char *GetLabelFormat() { return fLabelFormat.Data(); }
76 Int_t GetEntries() { return fNvals; }
77 const char *GetPercentFormat() { return fPercentFormat.Data(); }
80 const char *GetValueFormat() { return fValueFormat.Data(); }
81 Double_t GetX() { return fX; }
82 Double_t GetY() { return fY; }
83 TLegend *MakeLegend(Double_t x1=.65,Double_t y1=.65,Double_t x2=.95, Double_t y2=.95, const char *leg_header="");
85 void Paint(Option_t *) override;
86 void SavePrimitive(std::ostream &out, Option_t *opts="") override;
87 void SetAngle3D(Float_t val = 30.); // *MENU*
89 void SetCircle(Double_t x=.5, Double_t y=.5, Double_t rad=.4);
90 void SetEntryLabel(Int_t, const char *text="Slice");
99 void SetFractionFormat(const char*); // *MENU*
100 void SetHeight(Double_t val=.08); // *MENU*
101 void SetLabelFormat(const char *); // *MENU*
102 void SetLabels(const char *[]);
103 void SetLabelsOffset(Float_t); // *MENU*
104 void SetPercentFormat(const char *); // *MENU*
105 void SetRadius(Double_t); // *MENU*
106 void SetValueFormat(const char *); // *MENU*
107 void SetX(Double_t); // *MENU*
108 void SetY(Double_t); // *MENU*
109 void SortSlices(Bool_t amode=kTRUE,Float_t merge_thresold=.0);
110
111 ClassDefOverride(TPie,1) //Pie chart graphics class
112};
113
114#endif // ROOT_TPie
ROOT::R::TRInterface & r
Definition Object.C:4
#define h(i)
Definition RSha256.hxx:106
int Int_t
Signed integer 4 bytes (int).
Definition RtypesCore.h:59
bool Bool_t
Boolean (0=false, 1=true) (bool).
Definition RtypesCore.h:77
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
float Float_t
Float 4 bytes (float).
Definition RtypesCore.h:71
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
const char Option_t
Option string (const char).
Definition RtypesCore.h:80
#define ClassDefOverride(name, id)
Definition Rtypes.h:348
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:109
TNamed()
Definition TNamed.h:38
A slice of a piechart, see the TPie class.
Definition TPieSlice.h:18
void SetEntryVal(Int_t, Double_t)
TPieSlice * GetSlice(Int_t i)
Float_t fLabelsOffset
LabelsOffset offset of label.
Definition TPie.h:37
Int_t GetEntries()
Definition TPie.h:76
void SetAngularOffset(Double_t)
void Paint(Option_t *) override
This method must be overridden if a class wants to paint itself.
Double_t GetEntryVal(Int_t)
TString fLabelFormat
Format format of the slices' label.
Definition TPie.h:38
Float_t * fSlices
!Subdivisions of the slices
Definition TPie.h:29
void SetX(Double_t)
Double_t fAngularOffset
Offset angular offset for the first slice.
Definition TPie.h:36
TPie(const char *, const char *, Int_t)
void SortSlices(Bool_t amode=kTRUE, Float_t merge_thresold=.0)
void SetEntryFillStyle(Int_t, Int_t)
~TPie() override
void SetFractionFormat(const char *)
Float_t fAngle3D
The angle of the pseudo-3d view.
Definition TPie.h:46
Double_t fHeight
Height of the slice in pixel.
Definition TPie.h:45
const char * GetPercentFormat()
Definition TPie.h:77
void SetPercentFormat(const char *)
void SetLabels(const char *[])
void SetY(Double_t)
TLegend * GetLegend()
Bool_t fIs3D
! true if the pseudo-3d is enabled
Definition TPie.h:44
void Init(Int_t np, Double_t ao, Double_t x, Double_t y, Double_t r)
Int_t GetEntryFillColor(Int_t)
void SetLabelsOffset(Float_t)
TPie(const TPie &)
void SetEntryRadiusOffset(Int_t, Double_t)
Double_t GetAngularOffset()
Definition TPie.h:62
void DrawGhost()
Float_t GetLabelsOffset()
Definition TPie.h:74
TLegend * fLegend
!Legend for this piechart
Definition TPie.h:30
void SetLabelFormat(const char *)
Double_t fRadius
Radius Pie radius.
Definition TPie.h:35
const char * GetFractionFormat()
Definition TPie.h:71
TPieSlice ** fPieSlices
[fNvals] Slice array of this pie-chart
Definition TPie.h:43
void ExecuteEvent(Int_t, Int_t, Int_t) override
Execute action corresponding to an event at (px,py).
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Computes distance from point (px,py) to the object.
void SetEntryLineStyle(Int_t, Int_t)
void MakeSlices(Bool_t force=kFALSE)
void SetEntryFillColor(Int_t, Int_t)
void SetEntryLineWidth(Int_t, Int_t)
const char * GetLabelFormat()
Definition TPie.h:73
void SetCircle(Double_t x=.5, Double_t y=.5, Double_t rad=.4)
const char * GetEntryLabel(Int_t)
TString fValueFormat
Vform numeric format for the value.
Definition TPie.h:39
Double_t GetX()
Definition TPie.h:81
TString fFractionFormat
Rform numeric format for the fraction of a slice.
Definition TPie.h:40
void SetAngle3D(Float_t val=30.)
Double_t GetEntryRadiusOffset(Int_t)
Int_t GetEntryFillStyle(Int_t)
const char * GetValueFormat()
Definition TPie.h:80
void SetRadius(Double_t)
void SavePrimitive(std::ostream &out, Option_t *opts="") override
Save a primitive as a C++ statement(s) on output stream "out".
TString fPercentFormat
Pfrom numeric format for the percent of a slice.
Definition TPie.h:41
TLegend * MakeLegend(Double_t x1=.65, Double_t y1=.65, Double_t x2=.95, Double_t y2=.95, const char *leg_header="")
Int_t fNvals
Number of elements.
Definition TPie.h:42
Double_t GetHeight()
Definition TPie.h:72
Int_t DistancetoSlice(Int_t, Int_t)
Int_t GetEntryLineStyle(Int_t)
Float_t fSum
!Sum for the slice values
Definition TPie.h:28
Double_t fY
Y coordinate of the pie centre.
Definition TPie.h:34
void SetEntryLabel(Int_t, const char *text="Slice")
Double_t fX
X coordinate of the pie centre.
Definition TPie.h:33
Double_t GetY()
Definition TPie.h:82
TPie(const char *, const char *, Int_t, Float_t *, Int_t *cols=nullptr, const char *lbls[]=nullptr)
void SetHeight(Double_t val=.08)
Int_t GetEntryLineWidth(Int_t)
Int_t GetEntryLineColor(Int_t)
void Draw(Option_t *option="l") override
Default Draw method for all objects.
Float_t GetAngle3D()
Definition TPie.h:61
TPie(const TH1 *h)
void SetValueFormat(const char *)
Double_t GetRadius()
Definition TPie.h:78
TPie(const char *, const char *, Int_t, Double_t *, Int_t *cols=nullptr, const char *lbls[]=nullptr)
void SetEntryLineColor(Int_t, Int_t)
void SetFillColors(Int_t *)
Basic string class.
Definition TString.h:138
TText * text
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17