ROOT
6.06/09
Reference Guide
|
The histogram painter class.
Implements all histograms' drawing's options.
Histograms are drawn via the THistPainter
class. Each histogram has a pointer to its own painter (to be usable in a multithreaded program). When the canvas has to be redrawn, the Paint
function of each objects in the pad is called. In case of histograms, TH1::Paint
invokes directly THistPainter::Paint
.
To draw a histogram h
is enough to do:
h->Draw();
h
can be of any kind: 1D, 2D or 3D. To choose how the histogram will be drawn, the Draw()
method can be invoked with an option. For instance to draw a 2D histogram as a lego plot it is enough to do:
h->Draw("lego");
THistPainter
offers many options to paint 1D, 2D and 3D histograms.
When the Draw()
method of a histogram is called for the first time (TH1::Draw
), it creates a THistPainter
object and saves a pointer to this "painter" as a data member of the histogram. The THistPainter
class specializes in the drawing of histograms. It is separated from the histogram so that one can have histograms without the graphics overhead, for example in a batch program. Each histogram have its own painter rather than a central singleton painter painting all histograms, allows two histograms to be drawn in two threads without overwriting the painter's values.
When a displayed histogram is filled again, there is not need to call the Draw()
method again; the image will be refreshed the next time the pad will be updated.
A pad is updated after one of these three actions:
TPad::Update
.By default a call to TH1::Draw()
clears the pad of all objects before drawing the new image of the histogram. One can use the SAME
option to leave the previous display intact and superimpose the new histogram. The same histogram can be drawn with different graphics options in different pads.
When a displayed histogram is deleted, its image is automatically removed from the pad.
To create a copy of the histogram when drawing it, one can use TH1::DrawClone()
. This will clone the histogram and allow to change and delete the original one without affecting the clone.
Most options can be concatenated with or without spaces or commas, for example:
h->Draw("E1 SAME");
The options are not case sensitive:
h->Draw("e1 same");
The default drawing option can be set with TH1::SetOption
and retrieve using TH1::GetOption
:
root [0] h->Draw(); // Draw "h" using the standard histogram representation. root [1] h->Draw("E"); // Draw "h" using error bars root [3] h->SetOption("E"); // Change the default drawing option for "h" root [4] h->Draw(); // Draw "h" using error bars root [5] h->GetOption(); // Retrieve the default drawing option for "h" (const Option_t* 0xa3ff948)"E"
Option | Description |
---|---|
"E" | Draw error bars. |
"AXIS" | Draw only axis. |
"AXIG" | Draw only grid (if the grid is requested). |
"HIST" | When an histogram has errors it is visualized by default with error bars. To visualize it without errors use the option "HIST" together with the required option (eg "hist same c"). The "HIST" option can also be used to plot only the histogram and not the associated function(s). |
"FUNC" | When an histogram has a fitted function, this option allows to draw the fit result only. |
"SAME" | Superimpose on previous picture in the same pad. |
"LEGO" | Draw a lego plot with hidden line removal. |
"LEGO1" | Draw a lego plot with hidden surface removal. |
"LEGO2" | Draw a lego plot using colors to show the cell contents When the option "0" is used with any LEGO option, the empty bins are not drawn. |
"LEGO3" | Draw a lego plot with hidden surface removal, like LEGO1 but the border lines of each lego-bar are not drawn. |
"LEGO4" | Draw a lego plot with hidden surface removal, like LEGO1 but without the shadow effect on each lego-bar. |
"TEXT" | Draw bin contents as text (format set via gStyle->SetPaintTextFormat ). |
"TEXTnn" | Draw bin contents as text at angle nn (0 < nn < 90). |
"X+" | The X-axis is drawn on the top side of the plot. |
"Y+" | The Y-axis is drawn on the right side of the plot. |
Option | Description |
---|---|
" " | Default. |
"AH" | Draw histogram without axis. "A" can be combined with any drawing option. For instance, "AC" draws the histogram as a smooth Curve without axis. |
"][" | When this option is selected the first and last vertical lines of the histogram are not drawn. |
"B" | Bar chart option. |
"BAR" | Like option "B", but bars can be drawn with a 3D effect. |
"HBAR" | Like option "BAR", but bars are drawn horizontally. |
"C" | Draw a smooth Curve through the histogram bins. |
"E0" | Draw error bars. Markers are drawn for bins with 0 contents. |
"E1" | Draw error bars with perpendicular lines at the edges. |
"E2" | Draw error bars with rectangles. |
"E3" | Draw a fill area through the end points of the vertical error bars. |
"E4" | Draw a smoothed filled area through the end points of the error bars. |
"E5" | Like E3 but ignore the bins with 0 contents. |
"E6" | Like E4 but ignore the bins with 0 contents. |
"X0" | When used with one of the "E" option, it suppress the error bar along X as gStyle->SetErrorX(0) would do. |
"L" | Draw a line through the bin contents. |
"P" | Draw current marker at each bin except empty bins. |
"P0" | Draw current marker at each bin including empty bins. |
"PIE" | Draw histogram as a Pie Chart. |
"*H" | Draw histogram with a * at each bin. |
"LF2" | Draw histogram like with option "L" but with a fill area. Note that "L" draws also a fill area if the hist fill color is set but the fill area corresponds to the histogram contour. |
Option | Description |
---|---|
" " | Default (scatter plot). |
"ARR" | Arrow mode. Shows gradient between adjacent cells. |
"BOX" | A box is drawn for each cell with surface proportional to the content's absolute value. A negative content is marked with a X. |
"BOX1" | A button is drawn for each cell with surface proportional to content's absolute value. A sunken button is drawn for negative values a raised one for positive. |
"COL" | A box is drawn for each cell with a color scale varying with contents. All the none empty bins are painted. Empty bins are not painted unless some bins have a negative content because in that case the null bins might be not empty. TProfile2D histograms are handled differently because, for this type of 2D histograms, it is possible to know if an empty bin has been filled or not. So even if all the bins' contents are positive some empty bins might be painted. And vice versa, if some bins have a negative content some empty bins might be not painted. |
"COLZ" | Same as "COL". In addition the color palette is also drawn. |
"CANDLE" | Draw a candle plot along X axis. |
"CANDLEX" | Same as "CANDLE". |
"CANDLEY" | Draw a candle plot along Y axis. |
"VIOLIN" | Draw a violin plot along X axis. |
"VIOLINX" | Same as "VIOLIN". |
"VIOLINY" | Draw a violin plot along Y axis. |
"CONT" | Draw a contour plot (same as CONT0). |
"CONT0" | Draw a contour plot using surface colors to distinguish contours. |
"CONT1" | Draw a contour plot using line styles to distinguish contours. |
"CONT2" | Draw a contour plot using the same line style for all contours. |
"CONT3" | Draw a contour plot using fill area colors. |
"CONT4" | Draw a contour plot using surface colors (SURF option at theta = 0). |
"CONT5" | (TGraph2D only) Draw a contour plot using Delaunay triangles. |
"LIST" | Generate a list of TGraph objects for each contour. |
"CYL" | Use Cylindrical coordinates. The X coordinate is mapped on the angle and the Y coordinate on the cylinder length. |
"POL" | Use Polar coordinates. The X coordinate is mapped on the angle and the Y coordinate on the radius. |
"SPH" | Use Spherical coordinates. The X coordinate is mapped on the latitude and the Y coordinate on the longitude. |
"PSR" | Use PseudoRapidity/Phi coordinates. The X coordinate is mapped on Phi. |
"SURF" | Draw a surface plot with hidden line removal. |
"SURF1" | Draw a surface plot with hidden surface removal. |
"SURF2" | Draw a surface plot using colors to show the cell contents. |
"SURF3" | Same as SURF with in addition a contour view drawn on the top. |
"SURF4" | Draw a surface using Gouraud shading. |
"SURF5" | Same as SURF3 but only the colored contour is drawn. Used with option CYL, SPH or PSR it allows to draw colored contours on a sphere, a cylinder or a in pseudo rapidity space. In cartesian or polar coordinates, option SURF3 is used. |
"FB" | With LEGO or SURFACE, suppress the Front-Box. |
"BB" | With LEGO or SURFACE, suppress the Back-Box. |
"A" | With LEGO or SURFACE, suppress the axis. |
"SCAT" | Draw a scatter-plot (default). |
"[cutg]" | Draw only the sub-range selected by the TCutG named "cutg". |
Option | Description |
---|---|
" " | Default (scatter plot). |
"ISO" | Draw a Gouraud shaded 3d iso surface through a 3d histogram. It paints one surface at the value computed as follow: SumOfWeights/(NbinsX*NbinsY*NbinsZ) . |
"BOX" | Draw a for each cell with volume proportional to the content's absolute value. |
"LEGO" | Same as BOX . |
THStack
)Option | Description |
---|---|
" " | Default, the histograms are drawn on top of each other (as lego plots for 2D histograms). |
"NOSTACK" | Histograms in the stack are all paint in the same pad as if the option SAME had been specified. |
"NOSTACKB" | Histograms are drawn next to each other as bar charts. |
"PADS" | The current pad/canvas is subdivided into a number of pads equal to the number of histograms in the stack and each histogram is paint into a separate pad. |
Histograms use the current style (gStyle
). When one changes the current style and would like to propagate the changes to the histogram, TH1::UseCurrentStyle
should be called. Call UseCurrentStyle
on each histogram is needed.
To force all the histogram to use the current style use:
gROOT->ForceStyle();
All the histograms read after this call will use the current style.
The histogram classes inherit from the attribute classes: TAttLine
, TAttFill
and TAttMarker
. See the description of these classes for the list of options.
The TPad::SetTicks
method specifies the type of tick marks on the axis. If tx = gPad->GetTickx()
and ty = gPad->GetTicky()
then:
tx = 1; tick marks on top side are drawn (inside) tx = 2; tick marks and labels on top side are drawn ty = 1; tick marks on right side are drawn (inside) ty = 2; tick marks and labels on right side are drawn
By default only the left Y axis and X bottom axis are drawn (tx = ty = 0
)
TPad::SetTicks(tx,ty)
allows to set these options. See also The TAxis
functions to set specific axis attributes.
In case multiple color filled histograms are drawn on the same pad, the fill area may hide the axis tick marks. One can force a redraw of the axis over all the histograms by calling:
gPad->RedrawAxis();
h->GetXaxis()->SetTitle("X axis title"); h->GetYaxis()->SetTitle("Y axis title");
The histogram title and the axis titles can be any TLatex
string. The titles are part of the persistent histogram.
By default, when an histogram is drawn, the current pad is cleared before drawing. In order to keep the previous drawing and draw on top of it the option SAME
should be use. The histogram drawn with the option SAME
uses the coordinates system available in the current pad.
This option can be used alone or combined with any valid drawing option but some combinations must be use with care.
LEGO
and SURF
options unless the histogram plotted with the option SAME
has exactly the same ranges on the X, Y and Z axis as the currently drawn histogram. To superimpose lego plots histograms' stacks should be used.The following example creates two histograms, the second histogram is the bins integral of the first one. It shows a procedure to draw the two histograms in the same pad and it draws the scale of the second histogram using a new vertical axis on the right side. See also the tutorial transpad.C
for a variant of this example.
The type of information shown in the histogram statistics box can be selected with:
gStyle->SetOptStat(mode);
The mode
has up to nine digits that can be set to on (1 or 2), off (0).
mode = ksiourmen (default = 000001111) k = 1; kurtosis printed k = 2; kurtosis and kurtosis error printed s = 1; skewness printed s = 2; skewness and skewness error printed i = 1; integral of bins printed i = 2; integral of bins with option "width" printed o = 1; number of overflows printed u = 1; number of underflows printed r = 1; standard deviation printed r = 2; standard deviation and standard deviation error printed m = 1; mean value printed m = 2; mean and mean error values printed e = 1; number of entries printed n = 1; name of histogram is printed
For example:
gStyle->SetOptStat(11);
displays only the name of histogram and the number of entries, whereas:
gStyle->SetOptStat(1101);
displays the name of histogram, mean value and standard deviation.
WARNING 1: never do:
gStyle->SetOptStat(0001111);
but instead do:
gStyle->SetOptStat(1111);
because 0001111
will be taken as an octal number!
WARNING 2: for backward compatibility with older versions
gStyle->SetOptStat(1);
is taken as:
gStyle->SetOptStat(1111)
To print only the name of the histogram do:
gStyle->SetOptStat(1000000001);
NOTE that in case of 2D histograms, when selecting only underflow (10000) or overflow (100000), the statistics box will show all combinations of underflow/overflows and not just one single number.
The parameter mode can be any combination of the letters kKsSiIourRmMen
k : kurtosis printed K : kurtosis and kurtosis error printed s : skewness printed S : skewness and skewness error printed i : integral of bins printed I : integral of bins with option "width" printed o : number of overflows printed u : number of underflows printed r : standard deviation printed R : standard deviation and standard deviation error printed m : mean value printed M : mean value mean error values printed e : number of entries printed n : name of histogram is printed
For example, to print only name of histogram and number of entries do:
gStyle->SetOptStat("ne");
To print only the name of the histogram do:
gStyle->SetOptStat("n");
The default value is:
gStyle->SetOptStat("nemr");
When a histogram is painted, a TPaveStats
object is created and added to the list of functions of the histogram. If a TPaveStats
object already exists in the histogram list of functions, the existing object is just updated with the current histogram parameters.
Once a histogram is painted, the statistics box can be accessed using h->FindObject("stats")
. In the command line it is enough to do:
Root > h->Draw() Root > TPaveStats *st = (TPaveStats*)h->FindObject("stats")
because after h->Draw()
the histogram is automatically painted. But in a script file the painting should be forced using gPad->Update()
in order to make sure the statistics box is created:
h->Draw(); gPad->Update(); TPaveStats *st = (TPaveStats*)h->FindObject("stats");
Without gPad->Update()
the line h->FindObject("stats")
returns a null pointer.
When a histogram is drawn with the option SAME
, the statistics box is not drawn. To force the statistics box drawing with the option SAME
, the option SAMES
must be used. If the new statistics box hides the previous statistics box, one can change its position with these lines (h
being the pointer to the histogram):
Root > TPaveStats *st = (TPaveStats*)h->FindObject("stats") Root > st->SetX1NDC(newx1); //new x start position Root > st->SetX2NDC(newx2); //new x end position
To change the type of information for an histogram with an existing TPaveStats
one should do:
st->SetOptStat(mode);
Where mode
has the same meaning than when calling gStyle->SetOptStat(mode)
(see above).
One can delete the statistics box for a histogram TH1* h
with:
h->SetStats(0)
and activate it again with:
h->SetStats(1).
Labels used in the statistics box ("Mean", "Std Dev", ...) can be changed from $ROOTSYS/etc/system.rootrc
or .rootrc
(look for the string Hist.Stats.
).
The type of information about fit parameters printed in the histogram statistics box can be selected via the parameter mode. The parameter mode can be = pcev
(default = 0111
)
p = 1; print Probability c = 1; print Chisquare/Number of degrees of freedom e = 1; print errors (if e=1, v must be 1) v = 1; print name/values of parameters
Example:
gStyle->SetOptFit(1011);
print fit probability, parameter names/values and errors.
v" = 1</tt> is specified, only the non-fixed parameters are shown.
2. When <tt>v" = 2
all parameters are shown.Note: gStyle->SetOptFit(1)
means "default value", so it is equivalent to gStyle->SetOptFit(111)
Option | Description |
---|---|
"E" | Default. Shows only the error bars, not a marker. |
"E1" | Small lines are drawn at the end of the error bars. |
"E2" | Error rectangles are drawn. |
"E3" | A filled area is drawn through the end points of the vertical error bars. |
"E4" | A smoothed filled area is drawn through the end points of the vertical error bars. |
"E0" | Draw also bins with null contents. |
The options "E3" and "E4" draw an error band through the end points of the vertical error bars. With "E4" the error band is smoothed. Because of the smoothing algorithm used some artefacts may appear at the end of the band like in the following example. In such cases "E3" should be used instead of "E4".
2D histograms can be drawn with error bars as shown is the following example:
The option "B" allows to draw simple vertical bar charts. The bar width is controlled with TH1::SetBarWidth()
, and the bar offset wihtin the bin, with TH1::SetBarOffset()
. These two settings are useful to draw several histograms on the same plot as shown in the following example:
When the option "bar" or "hbar" is specified, a bar chart is drawn. A vertical bar-chart is drawn with the options bar
, bar0
, bar1
, bar2
, bar3
, bar4
. An horizontal bar-chart is drawn with the options hbar
, hbar0
, hbar1
, hbar2
,
hbar3,
hbar4`.
To control the bar width (default is the bin width) TH1::SetBarWidth()
should be used.
To control the bar offset (default is 0) TH1::SetBarOffset()
should be used.
These two parameters are useful when several histograms are plotted using the option SAME
. They allow to plot the histograms next to each other.
For each cell (i,j) a number of points proportional to the cell content is drawn. A maximum of kNMAX
points per cell is drawn. If the maximum is above kNMAX
contents are normalized to kNMAX
(kNMAX=2000
). If option is of the form scat=ff
, (eg scat=1.8
, scat=1e-3
), then ff
is used as a scale factor to compute the number of dots. scat=1
is the default.
By default the scatter plot is painted with a "dot marker" which not scalable (see the TAttMarker
documentation). To change the marker size, a scalable marker type should be used. For instance a circle (marker style 20).
Shows gradient between adjacent cells. For each cell (i,j) an arrow is drawn The orientation of the arrow follows the cell gradient.
For each cell (i,j) a box is drawn. The size (surface) of the box is proportional to the absolute value of the cell content. The cells with a negative content draw with a X
on top of the boxes.
With option BOX1
a button is drawn for each cell with surface proportional to content's absolute value. A sunken button is drawn for negative values a raised one for positive.
When the option SAME
(or "SAMES") is used with the option BOX
, the boxes' sizes are computing taking the previous plots into account. The range along the Z axis is imposed by the first plot (the one without option SAME
); therefore the order in which the plots are done is relevant.
For each cell (i,j) a box is drawn with a color proportional to the cell content.
The color table used is defined in the current style.
If the histogram's minimum and maximum are the same (flat histogram), the mapping on colors is not possible, therefore nothing is painted. To paint a flat histogram it is enough to set the histogram minimum (TH1::SetMinimum()
) different from the bins' content.
The default number of color levels used to paint the cells is 20. It can be changed with TH1::SetContour()
or TStyle::SetNumberContours()
. The higher this number is, the smoother is the color change between cells.
The color palette in TStyle can be modified via gStyle->SetPalette()
.
All the none empty bins are painted. Empty bins are not painted unless some bins have a negative content because in that case the null bins might be not empty.
TProfile2D
histograms are handled differently because, for this type of 2D histograms, it is possible to know if an empty bin has been filled or not. So even if all the bins' contents are positive some empty bins might be painted. And vice versa, if some bins have a negative content some empty bins might be not painted.
Combined with the option COL
, the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
In the following example, the histogram has only positive bins; the empty bins (containing 0) are not drawn.
In the first plot of following example, the histogram has some negative bins; the empty bins (containing 0) are drawn. In some cases one wants to not draw empty bins (containing 0) of histograms having a negative minimum. The option 1
, used to produce the second plot in the following picture, allows to do that.
When the maximum of the histogram is set to a smaller value than the real maximum, the bins having a content between the new maximum and the real maximum are painted with the color corresponding to the new maximum.
When the minimum of the histogram is set to a greater value than the real minimum, the bins having a value between the real minimum and the new minimum are not drawn unless the option 0
is set.
The following example illustrates the option 0
combined with the option COL
.
The option COL
can be combined with the option POL
:
A Candle plot (also known as a "box-and whisker plot" or simply "box plot") is a convenient way to describe graphically a data distribution (D) with only five numbers. It was invented in 1977 by John Tukey.
With the option CANDLEX five numbers are:
The mean value of the distribution D is also represented as a circle.
In this implementation a TH2 is considered as a collection of TH1 along X (option CANDLE
or CANDLEX
) or Y (option CANDLEY
). Each TH1 is represented as a candle plot.
A violin plot is a box plot that also encodes the pdf information at each point.
Quartiles and mean are also represented at each point, with a marker and two lines.
In this implementation a TH2 is considered as a collection of TH1 along X (option VIOLIN
or VIOLINX
) or Y (option VIOLINY
).
A solid fill style is recommended for this plot (as opposed to a hollow or hashed style).
For each bin the content is printed. The text attributes are:
gStyle->SetTextFont()
).h
is the histogram drawn with the option TEXT
the marker size can be changed with h->SetMarkerSize(markersize)
).By default the format g
is used. This format can be redefined by calling gStyle->SetPaintTextFormat()
.
It is also possible to use TEXTnn
in order to draw the text with the angle nn
(0 < nn < 90
).
For 2D histograms the text is plotted in the center of each non empty cells. It is possible to plot empty cells by calling gStyle->SetHistMinimumZero(). For 1D histogram the text is plotted at a y position equal to the bin content.
For 2D histograms when the option "E" (errors) is combined with the option text ("TEXTE"), the error for each bin is also printed.
In the case of profile histograms it is possible to print the number of entries instead of the bin content. It is enough to combine the option "E" (for entries) with the option "TEXT".
The following contour options are supported:
Option | Description |
---|---|
"CONT" | Draw a contour plot (same as CONT0). |
"CONT0" | Draw a contour plot using surface colors to distinguish contours. |
"CONT1" | Draw a contour plot using the line colors to distinguish contours. |
"CONT2" | Draw a contour plot using the line styles to distinguish contours. |
"CONT3" | Draw a contour plot solid lines for all contours. |
"CONT4" | Draw a contour plot using surface colors (SURF option at theta = 0). |
"CONT5" | Draw a contour plot using Delaunay triangles. |
The following example shows a 2D histogram plotted with the option CONTZ
. The option CONT
draws a contour plot using surface colors to distinguish contours. Combined with the option CONT
(or CONT0
), the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
The following example shows a 2D histogram plotted with the option CONT1Z
. The option CONT1
draws a contour plot using the line colors to distinguish contours. Combined with the option CONT1
, the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
The following example shows a 2D histogram plotted with the option CONT2
. The option CONT2
draws a contour plot using the line styles to distinguish contours.
The following example shows a 2D histogram plotted with the option CONT3
. The option CONT3
draws contour plot solid lines for all contours.
The following example shows a 2D histogram plotted with the option CONT4
. The option CONT4
draws a contour plot using surface colors to distinguish contours (SURF
option at theta = 0). Combined with the option CONT
(or CONT0
), the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
The default number of contour levels is 20 equidistant levels and can be changed with TH1::SetContour()
or TStyle::SetNumberContours()
.
When option LIST
is specified together with option CONT
, the points used to draw the contours are saved in TGraph
objects:
h->Draw("CONT LIST"); gPad->Update();
The contour are saved in TGraph
objects once the pad is painted. Therefore to use this functionnality in a macro, gPad->Update()
should be performed after the histogram drawing. Once the list is built, the contours are accessible in the following way:
TObjArray *contours = gROOT->GetListOfSpecials()->FindObject("contours") Int_t ncontours = contours->GetSize(); TList *list = (TList*)contours->At(i);
Where i
is a contour number, and list contains a list of TGraph
objects. For one given contour, more than one disjoint polyline may be generated. The number of TGraphs per contour is given by:
list->GetSize();
To access the first graph in the list one should do:
TGraph *gr1 = (TGraph*)list->First();
The following example shows how to use this functionality.
The following options select the CONT4
option and are useful for sky maps or exposure maps.
Option | Description |
---|---|
"AITOFF" | Draw a contour via an AITOFF projection. |
"MERCATOR" | Draw a contour via an Mercator projection. |
"SINUSOIDAL" | Draw a contour via an Sinusoidal projection. |
"PARABOLIC" | Draw a contour via an Parabolic projection. |
In a lego plot the cell contents are drawn as 3-d boxes. The height of each box is proportional to the cell content. The lego aspect is control with the following options:
Option | Description |
---|---|
"LEGO" | Draw a lego plot using the hidden lines removal technique. |
"LEGO1" | Draw a lego plot using the hidden surface removal technique. |
"LEGO2" | Draw a lego plot using colors to show the cell contents. |
"LEGO3" | Draw a lego plot with hidden surface removal, like LEGO1 but the border lines of each lego-bar are not drawn. |
"LEGO4" | Draw a lego plot with hidden surface removal, like LEGO1 but without the shadow effect on each lego-bar. |
"0" | When used with any LEGO option, the empty bins are not drawn. |
See the limitations with the option "SAME".
Line attributes can be used in lego plots to change the edges' style.
The following example shows a 2D histogram plotted with the option LEGO
. The option LEGO
draws a lego plot using the hidden lines removal technique.
The following example shows a 2D histogram plotted with the option LEGO1
. The option LEGO1
draws a lego plot using the hidden surface removal technique. Combined with any LEGOn
option, the option 0
allows to not drawn the empty bins.
The following example shows a 2D histogram plotted with the option LEGO3
. Like the option LEGO1
, the option LEGO3
draws a lego plot using the hidden surface removal technique but doesn't draw the border lines of each individual lego-bar. This is very useful for histograms having many bins. With such histograms the option LEGO1
gives a black image because of the border lines. This option also works with stacked legos.
The following example shows a 2D histogram plotted with the option LEGO2
. The option LEGO2
draws a lego plot using colors to show the cell contents. Combined with the option LEGO2
, the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
In a surface plot, cell contents are represented as a mesh. The height of the mesh is proportional to the cell content.
Option | Description |
---|---|
"SURF" | Draw a surface plot using the hidden line removal technique. |
"SURF1" | Draw a surface plot using the hidden surface removal technique. |
"SURF2" | Draw a surface plot using colors to show the cell contents. |
"SURF3" | Same as SURF with an additionial filled contour plot on top. |
"SURF4" | Draw a surface using the Gouraud shading technique. |
"SURF5" | Used with one of the options CYL, PSR and CYL this option allows to draw a a filled contour plot. |
"SURF6" | This option should not be used directly. It is used internally when the CONT is used with option the option SAME on a 3D plot. |
"SURF7" | Same as SURF2 with an additionial line contour plot on top. |
See the limitations with the option "SAME".
The following example shows a 2D histogram plotted with the option SURF
. The option SURF
draws a lego plot using the hidden lines removal technique.
The following example shows a 2D histogram plotted with the option SURF1
. The option SURF1
draws a surface plot using the hidden surface removal technique. Combined with the option SURF1
, the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
The following example shows a 2D histogram plotted with the option SURF2
. The option SURF2
draws a surface plot using colors to show the cell contents. Combined with the option SURF2
, the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
The following example shows a 2D histogram plotted with the option SURF3
. The option SURF3
draws a surface plot using the hidden line removal technique with, in addition, a filled contour view drawn on the top. Combined with the option SURF3
, the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
The following example shows a 2D histogram plotted with the option SURF4
. The option SURF4
draws a surface using the Gouraud shading technique.
The following example shows a 2D histogram plotted with the option SURF5 CYL
. Combined with the option SURF5
, the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
The following example shows a 2D histogram plotted with the option SURF7
. The option SURF7
draws a surface plot using the hidden surfaces removal technique with, in addition, a line contour view drawn on the top. Combined with the option SURF7
, the option Z
allows to display the color palette defined by gStyle->SetPalette()
.
As shown in the following example, when a contour plot is painted on top of a surface plot using the option SAME
, the contours appear in 3D on the surface.
Legos and surfaces plots are represented by default in Cartesian coordinates. Combined with any LEGOn
or SURFn
options the following options allow to draw a lego or a surface in other coordinates systems.
Option | Description |
---|---|
"CYL" | Use Cylindrical coordinates. The X coordinate is mapped on the angle and the Y coordinate on the cylinder length. |
"POL" | Use Polar coordinates. The X coordinate is mapped on the angle and the Y coordinate on the radius. |
"SPH" | Use Spherical coordinates. The X coordinate is mapped on the latitude and the Y coordinate on the longitude. |
"PSR" | Use PseudoRapidity/Phi coordinates. The X coordinate is mapped on Phi. |
WARNING: Axis are not drawn with these options.
The following example shows the same histogram as a lego plot is the four different coordinates systems.
The following example shows the same histogram as a surface plot is the four different coordinates systems.
By default the base line used to draw the boxes for bar-charts and lego plots is the histogram minimum. It is possible to force this base line to be 0 with the command:
gStyle->SetHistMinimumZero();
This option also works for horizontal plots. The example given in the section "The bar chart option" appears as follow:
The following options are supported:
Option | Description |
---|---|
"SCAT" | Draw a scatter plot (default). |
"COL" | Draw a color plot. All the none empty bins are painted. Empty bins are not painted. |
"COLZ" | Same as "COL". In addition the color palette is also drawn. |
"TEXT" | Draw bin contents as text (format set via gStyle->SetPaintTextFormat ). |
"TEXTN" | Draw bin names as text. |
"TEXTnn" | Draw bin contents as text at angle nn (0 < nn < 90). |
"L" | Draw the bins boundaries as lines. The lines attibutes are the TGraphs ones. |
"P" | Draw the bins boundaries as markers. The markers attibutes are the TGraphs ones. |
"F" | Draw the bins boundaries as filled polygons. The filled polygons attibutes are the TGraphs ones. |
TH2Poly
can be drawn as a color plot (option COL). TH2Poly
bins can have any shapes. The bins are defined as graphs. The following macro is a very simple example showing how to book a TH2Poly and draw it.
Rectangular bins are a frequent case. The special version of the AddBin
method allows to define them more easily like shown in the following example.
One TH2Poly
bin can be a list of polygons. Such bins are defined by calling AddBin
with a TMultiGraph
. The following example shows a such case:
TH2Poly
histograms can also be plotted using the GL interface using the option "GLLEGO".
This option allows to use the TSpectrum2Painter
tools. See the full documentation in TSpectrum2Painter::PaintSpectrum
.
When this option is specified, a color palette with an axis indicating the value of the corresponding color is drawn on the right side of the picture. In case, not enough space is left, one can increase the size of the right margin by calling TPad::SetRightMargin()
. The attributes used to display the palette axis values are taken from the Z axis of the object. For example, to set the labels size on the palette axis do:
hist->GetZaxis()->SetLabelSize().
WARNING: The palette axis is always drawn vertically.
To change the color palette TStyle::SetPalette
should be used, eg:
gStyle->SetPalette(ncolors,colors);
For example the option COL
draws a 2D histogram with cells represented by a box filled with a color index which is a function of the cell content. If the cell content is N, the color index used will be the color number in colors[N]
, etc. If the maximum cell content is greater than ncolors
, all cell contents are scaled to ncolors
.
If ncolors <= 0
, a default palette (see below) of 50 colors is defined. This palette is recommended for pads, labels ...
if ncolors == 1 && colors == 0
, then a Pretty Palette with a Spectrum Violet->Red is created with 50 colors. That's the default rain bow palette.
Other prefined palettes with 255 colors are available when colors == 0
. The following value of ncolors
give access to:
if ncolors = 51 and colors=0, a Deep Sea palette is used. if ncolors = 52 and colors=0, a Grey Scale palette is used. if ncolors = 53 and colors=0, a Dark Body Radiator palette is used. if ncolors = 54 and colors=0, a two-color hue palette palette is used.(dark blue through neutral gray to bright yellow) if ncolors = 55 and colors=0, a Rain Bow palette is used. if ncolors = 56 and colors=0, an inverted Dark Body Radiator palette is used.
If ncolors > 0 && colors == 0
, the default palette is used with a maximum of ncolors.
The default palette defines:
The color numbers specified in the palette can be viewed by selecting the item colors
in the VIEW
menu of the canvas tool bar. The red, green, and blue components of a color can be changed thanks to TColor::SetRGB()
.
Using a TCutG
object, it is possible to draw a sub-range of a 2D histogram. One must create a graphical cut (mouse or C++) and specify the name of the cut between []
in the Draw()
option. For example, with a TCutG
named cutg
, one can call:
myhist->Draw("surf1 [cutg]");
To invert the cut, it is enough to put a -
in front of its name:
myhist->Draw("surf1 [-cutg]");
It is possible to apply several cuts (,
means logical AND):
myhist->Draw("surf1 [cutg1,cutg2]");
Option | Description |
---|---|
"ISO" | Draw a Gouraud shaded 3d iso surface through a 3d histogram. It paints one surface at the value computed as follow: SumOfWeights/(NbinsX*NbinsY*NbinsZ) |
"BOX" | Draw a for each cell with volume proportional to the content's absolute value. |
By default, like 2D histograms, 3D histograms are drawn as scatter plots.
The following example shows a 3D histogram plotted as a scatter plot.
The following example shows a 3D histogram plotted with the option BOX
.
The following example shows a 3D histogram plotted with the option ISO
.
Stacks of histograms are managed with the THStack
. A THStack
is a collection of TH1
(or derived) objects. For painting only the THStack
containing TH1
only or THStack
containing TH2
only will be considered.
By default, histograms are shown stacked:
If the option NOSTACK
is specified, the histograms are all paint in the same pad as if the option SAME
had been specified. This allows to compute X and Y scales common to all the histograms, like TMultiGraph
does for graphs.
If the option PADS
is specified, the current pad/canvas is subdivided into a number of pads equal to the number of histograms and each histogram is paint into a separate pad.
The following example shows various types of stacks.
The option nostackb
allows to draw the histograms next to each other as bar charts:
If at least one of the histograms in the stack has errors, the whole stack is visualized by default with error bars. To visualize it without errors the option HIST
should be used.
3D implicit functions (TF3
) can be drawn as iso-surfaces. The implicit function f(x,y,z) = 0 is drawn in cartesian coordinates. In the following example the options "FB" and "BB" suppress the "Front Box" and "Back Box" around the plot.
An associated function is created by TH1::Fit
. More than on fitted function can be associated with one histogram (see TH1::Fit
).
A TF1
object f1
can be added to the list of associated functions of an histogram h
without calling TH1::Fit
simply doing:
h->GetListOfFunctions()->Add(f1);
or
h->GetListOfFunctions()->Add(f1,someoption);
To retrieve a function by name from this list, do:
TF1 *f1 = (TF1*)h->GetListOfFunctions()->FindObject(name);
or
TF1 *f1 = h->GetFunction(name);
Associated functions are automatically painted when an histogram is drawn. To avoid the painting of the associated functions the option HIST
should be added to the list of the options used to paint the histogram.
The class TGLHistPainter
allows to paint data set using the OpenGL 3D graphics library. The plotting options start with GL
keyword. In addition, in order to inform canvases that OpenGL should be used to render 3D representations, the following option should be set:
gStyle->SetCanvasPreferGL(true);
The following types of plots are provided:
For lego plots the supported options are:
Option | Description |
---|---|
"GLLEGO" | Draw a lego plot. It works also for TH2Poly . |
"GLLEGO2" | Bins with color levels. |
"GLLEGO3" | Cylindrical bars. |
Lego painter in cartesian supports logarithmic scales for X, Y, Z. In polar only Z axis can be logarithmic, in cylindrical only Y.
For surface plots (TF2
and TH2
) the supported options are:
Option | Description |
---|---|
"GLSURF" | Draw a surface. |
"GLSURF1" | Surface with color levels |
"GLSURF2" | The same as "GLSURF1" but without polygon outlines. |
"GLSURF3" | Color level projection on top of plot (works only in cartesian coordinate system). |
"GLSURF4" | Same as "GLSURF" but without polygon outlines. |
The surface painting in cartesian coordinates supports logarithmic scales along X, Y, Z axis. In polar coordinates only the Z axis can be logarithmic, in cylindrical coordinates only the Y axis.
Additional options to SURF and LEGO - Coordinate systems:
Option | Description |
---|---|
" " | Default, cartesian coordinates system. |
"POL" | Polar coordinates system. |
"CYL" | Cylindrical coordinates system. |
"SPH" | Spherical coordinates system. |
The supported option is:
Option | Description |
---|---|
"GLCOL" | H3 is drawn using semi-transparent colored boxes. See $ROOTSYS/tutorials/gl/glvox1.C . |
The supported options are:
Option | Description |
---|---|
"GLBOX" | TH3 as a set of boxes, size of box is proportional to bin content. |
"GLBOX1" | The same as "glbox", but spheres are drawn instead of boxes. |
The supported option is:
Option | Description |
---|---|
"GLISO" | TH3 is drawn using iso-surfaces. |
The supported option is:
Option | Description |
---|---|
"GLTF3" | Draw a TF3. |
$ROOTSYS/tutorials/gl/glparametric.C
shows how to create parametric equations and visualize the surface.
All the interactions are implemented via standard methods DistancetoPrimitive()
and ExecuteEvent()
. That's why all the interactions with the OpenGL plots are possible only when the mouse cursor is in the plot's area (the plot's area is the part of a the pad occupied by gl-produced picture). If the mouse cursor is not above gl-picture, the standard pad interaction is performed.
Different parts of the plot can be selected:
The selected plot can be moved in a pad's area by pressing and holding the left mouse button and the shift key.
Surface, iso, box, TF3 and parametric painters support box cut by pressing the 'c' or 'C' key when the mouse cursor is in a plot's area. That will display a transparent box, cutting away part of the surface (or boxes) in order to show internal part of plot. This box can be moved inside the plot's area (the full size of the box is equal to the plot's surrounding box) by selecting one of the box cut axes and pressing the left mouse button to move it.
Currently, all gl-plots support some form of slicing. When back plane is selected (and if it's highlighted in green) you can press and hold left mouse button and shift key and move this back plane inside plot's area, creating the slice. During this "slicing" plot becomes semi-transparent. To remove all slices (and projected curves for surfaces) double click with left mouse button in a plot's area.
The surface profile is displayed on the slicing plane. The profile projection is drawn on the back plane by pressing 'p'
or 'P'
key.
The contour plot is drawn on the slicing plane. For TF3 the color scheme can be changed by pressing 's' or 'S'.
The contour plot corresponding to slice plane position is drawn in real time.
Slicing is similar to "GLBOX" option.
No slicing. Additional keys: 's' or 'S' to change color scheme - about 20 color schemes supported ('s' for "scheme"); 'l' or 'L' to increase number of polygons ('l' for "level" of details), 'w' or 'W' to show outlines ('w' for "wireframe").
Definition at line 41 of file THistPainter.h.
Public Member Functions | |
THistPainter () | |
virtual | ~THistPainter () |
Default destructor. More... | |
virtual void | DefineColorLevels (Int_t ndivz) |
Define the color levels used to paint legos, surfaces etc.. More... | |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Compute the distance from the point px,py to a line. More... | |
virtual void | DrawPanel () |
Display a panel with all histogram drawing options. More... | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute the actions corresponding to event . More... | |
virtual TList * | GetContourList (Double_t contour) const |
Get a contour (as a list of TGraphs) using the Delaunay triangulation. More... | |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Display the histogram info (bin number, contents, integral up to bin corresponding to cursor position px,py. More... | |
virtual TList * | GetStack () const |
virtual Bool_t | IsInside (Int_t x, Int_t y) |
Return kTRUE if the cell ix , iy is inside one of the graphical cuts. More... | |
virtual Bool_t | IsInside (Double_t x, Double_t y) |
Return kTRUE if the point x , y is inside one of the graphical cuts. More... | |
virtual Int_t | MakeChopt (Option_t *option) |
Decode string choptin and fill Hoption structure. More... | |
virtual Int_t | MakeCuts (char *cutsopt) |
Decode string choptin and fill Graphical cuts structure. More... | |
virtual void | Paint (Option_t *option="") |
Control routine to paint any kind of histograms More... | |
virtual void | PaintArrows (Option_t *option) |
Control function to draw a table as an arrow plot More... | |
virtual void | PaintAxis (Bool_t drawGridOnly=kFALSE) |
Draw axis (2D case) of an histogram. More... | |
virtual void | PaintBar (Option_t *option) |
Draw a bar-chart in a normal pad. More... | |
virtual void | PaintBarH (Option_t *option) |
Draw a bar char in a rotated pad (X vertical, Y horizontal) More... | |
virtual void | PaintBoxes (Option_t *option) |
Control function to draw a 2D histogram as a box plot More... | |
virtual void | PaintCandlePlot (Option_t *option) |
Control function to draw a 2D histogram as a candle (box) plot. More... | |
virtual void | PaintViolinPlot (Option_t *option) |
virtual void | PaintColorLevels (Option_t *option) |
virtual void | PaintTH2PolyBins (Option_t *option) |
Control function to draw a TH2Poly bins' contours. More... | |
virtual void | PaintTH2PolyColorLevels (Option_t *option) |
Control function to draw a TH2Poly as a color plot. More... | |
virtual void | PaintTH2PolyScatterPlot (Option_t *option) |
Control function to draw a TH2Poly as a scatter plot. More... | |
virtual void | PaintTH2PolyText (Option_t *option) |
Control function to draw a TH2Poly as a text plot. More... | |
virtual void | PaintContour (Option_t *option) |
Control function to draw a 2D histogram as a contour plot. More... | |
virtual Int_t | PaintContourLine (Double_t elev1, Int_t icont1, Double_t x1, Double_t y1, Double_t elev2, Int_t icont2, Double_t x2, Double_t y2, Double_t *xarr, Double_t *yarr, Int_t *itarr, Double_t *levels) |
Fill the matrix xarr and yarr for Contour Plot. More... | |
virtual void | PaintErrors (Option_t *option) |
Draw 1D histograms error bars. More... | |
virtual void | Paint2DErrors (Option_t *option) |
Draw 2D histograms errors. More... | |
virtual void | PaintFrame () |
Calculate range and clear pad (canvas). More... | |
virtual void | PaintFunction (Option_t *option) |
Paint functions associated to an histogram. More... | |
virtual void | PaintHist (Option_t *option) |
Control routine to draw 1D histograms More... | |
virtual void | PaintH3 (Option_t *option="") |
Control function to draw a 3D histograms. More... | |
virtual void | PaintH3Iso () |
Control function to draw a 3D histogram with Iso Surfaces. More... | |
virtual Int_t | PaintInit () |
Compute histogram parameters used by the drawing routines. More... | |
virtual Int_t | PaintInitH () |
Compute histogram parameters used by the drawing routines for a rotated pad. More... | |
virtual void | PaintLego (Option_t *option) |
Control function to draw a 2D histogram as a lego plot. More... | |
virtual void | PaintLegoAxis (TGaxis *axis, Double_t ang) |
Draw the axis for legos and surface plots. More... | |
virtual void | PaintPalette () |
Paint the color palette on the right side of the pad. More... | |
virtual void | PaintScatterPlot (Option_t *option) |
Control function to draw a 2D histogram as a scatter plot. More... | |
virtual void | PaintStat (Int_t dostat, TF1 *fit) |
Draw the statistics box for 1D and profile histograms. More... | |
virtual void | PaintStat2 (Int_t dostat, TF1 *fit) |
Draw the statistics box for 2D histograms. More... | |
virtual void | PaintStat3 (Int_t dostat, TF1 *fit) |
Draw the statistics box for 3D histograms. More... | |
virtual void | PaintSurface (Option_t *option) |
Control function to draw a 2D histogram as a surface plot. More... | |
virtual void | PaintTriangles (Option_t *option) |
Control function to draw a table using Delaunay triangles. More... | |
virtual void | PaintTable (Option_t *option) |
Control function to draw 2D/3D histograms (tables). More... | |
virtual void | PaintText (Option_t *option) |
Control function to draw a 1D/2D histograms with the bin values. More... | |
virtual void | PaintTitle () |
Draw the histogram title. More... | |
virtual void | PaintTF3 () |
Control function to draw a 3D implicit functions. More... | |
virtual void | ProcessMessage (const char *mess, const TObject *obj) |
Process message mess . More... | |
virtual void | RecalculateRange () |
Recompute the histogram range following graphics operations. More... | |
virtual void | RecursiveRemove (TObject *) |
Recursively remove this object from a list. More... | |
virtual void | SetHistogram (TH1 *h) |
Set current histogram to h More... | |
virtual void | SetStack (TList *stack) |
virtual void | SetShowProjection (const char *option, Int_t nbins) |
Set projection. More... | |
virtual void | ShowProjectionX (Int_t px, Int_t py) |
Show projection onto X. More... | |
virtual void | ShowProjectionY (Int_t px, Int_t py) |
Show projection onto Y. More... | |
virtual void | ShowProjection3 (Int_t px, Int_t py) |
Show projection (specified by fShowProjection ) of a TH3 . More... | |
virtual Int_t | TableInit () |
Initialize various options to draw 2D histograms. More... | |
Public Member Functions inherited from TVirtualHistPainter | |
TVirtualHistPainter () | |
virtual | ~TVirtualHistPainter () |
Public Member Functions inherited from TObject | |
TObject () | |
TObject (const TObject &object) | |
TObject copy ctor. More... | |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. More... | |
virtual | ~TObject () |
TObject destructor. More... | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. More... | |
virtual void | Browse (TBrowser *b) |
Browse object. May be overridden for another default action. More... | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. More... | |
virtual void | Clear (Option_t *="") |
virtual TObject * | Clone (const char *newname="") const |
Make a clone of an object using the Streamer facility. More... | |
virtual Int_t | Compare (const TObject *obj) const |
Compare abstract method. More... | |
virtual void | Copy (TObject &object) const |
Copy this to obj. More... | |
virtual void | Delete (Option_t *option="") |
Delete this object. More... | |
virtual void | Draw (Option_t *option="") |
Default Draw method for all objects. More... | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. More... | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current pad. More... | |
virtual void | Dump () const |
Dump contents of object on stdout. More... | |
virtual void | Execute (const char *method, const char *params, Int_t *error=0) |
Execute method on this object with the given parameter string, e.g. More... | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
Execute method on this object with parameters stored in the TObjArray. More... | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. More... | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. More... | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. More... | |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. More... | |
virtual const char * | GetName () const |
Returns name of object. More... | |
virtual const char * | GetIconName () const |
Returns mime type name of object. More... | |
virtual Option_t * | GetOption () const |
virtual const char * | GetTitle () const |
Returns title of object. More... | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. More... | |
virtual ULong_t | Hash () const |
Return hash value for this object. More... | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". More... | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. More... | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. More... | |
virtual Bool_t | IsFolder () const |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More... | |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). More... | |
virtual Bool_t | IsSortable () const |
Bool_t | IsOnHeap () const |
Bool_t | IsZombie () const |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification. More... | |
virtual void | ls (Option_t *option="") const |
The ls function lists the contents of a class on stdout. More... | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. More... | |
virtual void | Print (Option_t *option="") const |
This method must be overridden when a class wants to print itself. More... | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. More... | |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
Save this object in the file specified by filename. More... | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". More... | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. More... | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. More... | |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More... | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. More... | |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. More... | |
void * | operator new (size_t sz) |
void * | operator new[] (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz, void *vp) |
void | operator delete (void *ptr) |
Operator delete. More... | |
void | operator delete[] (void *ptr) |
Operator delete []. More... | |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. More... | |
void | SetBit (UInt_t f) |
void | ResetBit (UInt_t f) |
Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
void | InvertBit (UInt_t f) |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. More... | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. More... | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. More... | |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. More... | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. More... | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. More... | |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More... | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. More... | |
Static Public Member Functions | |
static Int_t | ProjectAitoff2xy (Double_t l, Double_t b, Double_t &Al, Double_t &Ab) |
Static function. More... | |
static Int_t | ProjectMercator2xy (Double_t l, Double_t b, Double_t &Al, Double_t &Ab) |
Static function. More... | |
static Int_t | ProjectSinusoidal2xy (Double_t l, Double_t b, Double_t &Al, Double_t &Ab) |
Static function code from Ernst-Jan Buis. More... | |
static Int_t | ProjectParabolic2xy (Double_t l, Double_t b, Double_t &Al, Double_t &Ab) |
Static function code from Ernst-Jan Buis. More... | |
static const char * | GetBestFormat (Double_t v, Double_t e, const char *f) |
This function returns the best format to print the error value (e) knowing the parameter value (v) and the format (f) used to print it. More... | |
static void | PaintSpecialObjects (const TObject *obj, Option_t *option) |
Static function to paint special objects like vectors and matrices. More... | |
Static Public Member Functions inherited from TVirtualHistPainter | |
static TVirtualHistPainter * | HistPainter (TH1 *obj) |
static void | SetPainter (const char *painter) |
Static function to set an alternative histogram painter. More... | |
Static Public Member Functions inherited from TObject | |
static Long_t | GetDtorOnly () |
Return destructor only flag. More... | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. More... | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. More... | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. More... | |
Protected Attributes | |
TH1 * | fH |
TAxis * | fXaxis |
TAxis * | fYaxis |
TAxis * | fZaxis |
TList * | fFunctions |
TPainter3dAlgorithms * | fLego |
TGraph2DPainter * | fGraph2DPainter |
TPie * | fPie |
Double_t * | fXbuf |
Double_t * | fYbuf |
Int_t | fNcuts |
Int_t | fCutsOpt [kMaxCuts] |
TCutG * | fCuts [kMaxCuts] |
TList * | fStack |
Int_t | fShowProjection |
TString | fShowOption |
Additional Inherited Members | |
Public Types inherited from TObject | |
enum | EStatusBits { kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13) } |
enum | { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff } |
enum | { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) } |
Protected Member Functions inherited from TObject | |
void | MakeZombie () |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). More... | |
#include <THistPainter.h>
THistPainter::THistPainter | ( | ) |
|
virtual |
Default destructor.
Definition at line 2516 of file THistPainter.cxx.
Define the color levels used to paint legos, surfaces etc..
Definition at line 8108 of file THistPainter.cxx.
Referenced by PaintLego(), and PaintSurface().
Compute the distance from the point px,py to a line.
Compute the closest distance of approach from point px,py to elements of an histogram. The distance is computed in pixels units.
Algorithm: Currently, this simple model computes the distance from the mouse to the histogram contour only.
Implements TVirtualHistPainter.
Definition at line 2530 of file THistPainter.cxx.
|
virtual |
Display a panel with all histogram drawing options.
Implements TVirtualHistPainter.
Definition at line 2708 of file THistPainter.cxx.
Execute the actions corresponding to event
.
This function is called when a histogram is clicked with the locator at the pixel position px,py.
Implements TVirtualHistPainter.
Definition at line 2729 of file THistPainter.cxx.
This function returns the best format to print the error value (e) knowing the parameter value (v) and the format (f) used to print it.
Definition at line 9206 of file THistPainter.cxx.
Referenced by PaintStat().
Get a contour (as a list of TGraphs) using the Delaunay triangulation.
Implements TVirtualHistPainter.
Definition at line 2956 of file THistPainter.cxx.
Display the histogram info (bin number, contents, integral up to bin corresponding to cursor position px,py.
Implements TVirtualHistPainter.
Definition at line 2985 of file THistPainter.cxx.
|
inlinevirtual |
Implements TVirtualHistPainter.
Definition at line 70 of file THistPainter.h.
Return kTRUE
if the cell ix
, iy
is inside one of the graphical cuts.
Implements TVirtualHistPainter.
Definition at line 3113 of file THistPainter.cxx.
Referenced by IsInside(), TPainter3dAlgorithms::LegoCartesian(), Paint2DErrors(), PaintArrows(), PaintBoxes(), PaintColorLevels(), PaintContour(), PaintScatterPlot(), PaintText(), and TPainter3dAlgorithms::SurfaceCartesian().
Return kTRUE
if the point x
, y
is inside one of the graphical cuts.
Implements TVirtualHistPainter.
Definition at line 3132 of file THistPainter.cxx.
Decode string choptin
and fill Hoption structure.
Definition at line 3149 of file THistPainter.cxx.
Referenced by Paint().
|
virtual |
Decode string choptin
and fill Graphical cuts structure.
Implements TVirtualHistPainter.
Definition at line 3506 of file THistPainter.cxx.
Referenced by MakeChopt().
Control routine to paint any kind of histograms
Implements TVirtualHistPainter.
Definition at line 3554 of file THistPainter.cxx.
Draw 2D histograms errors.
Definition at line 5514 of file THistPainter.cxx.
Referenced by PaintTable().
Control function to draw a table as an arrow plot
Definition at line 3743 of file THistPainter.cxx.
Referenced by PaintTable().
Draw axis (2D case) of an histogram.
If drawGridOnly
is TRUE
, only the grid is painted (if needed). This allows to draw the grid and the axis separately. In THistPainter::Paint
this feature is used to make sure that the grid is drawn in the background and the axis tick marks in the foreground of the pad.
Definition at line 3838 of file THistPainter.cxx.
Referenced by Paint(), PaintBarH(), PaintContour(), and PaintTable().
Draw a bar-chart in a normal pad.
Definition at line 4116 of file THistPainter.cxx.
Referenced by Paint().
Draw a bar char in a rotated pad (X vertical, Y horizontal)
Definition at line 4163 of file THistPainter.cxx.
Referenced by Paint().
Control function to draw a 2D histogram as a box plot
Definition at line 4237 of file THistPainter.cxx.
Referenced by PaintTable().
Control function to draw a 2D histogram as a candle (box) plot.
Definition at line 4415 of file THistPainter.cxx.
Referenced by PaintTable().
Definition at line 4691 of file THistPainter.cxx.
Referenced by PaintTable().
Control function to draw a 2D histogram as a contour plot.
Definition at line 4835 of file THistPainter.cxx.
Referenced by PaintTable().
|
virtual |
Fill the matrix xarr
and yarr
for Contour Plot.
Definition at line 5179 of file THistPainter.cxx.
Referenced by PaintContour().
Draw 1D histograms error bars.
Definition at line 5237 of file THistPainter.cxx.
Referenced by Paint().
|
virtual |
Calculate range and clear pad (canvas).
Definition at line 5676 of file THistPainter.cxx.
Referenced by Paint(), PaintBarH(), and PaintTable().
Paint functions associated to an histogram.
Definition at line 5700 of file THistPainter.cxx.
Referenced by Paint().
Control function to draw a 3D histograms.
Definition at line 5884 of file THistPainter.cxx.
Referenced by Paint().
|
virtual |
Control function to draw a 3D histogram with Iso Surfaces.
Definition at line 6367 of file THistPainter.cxx.
Referenced by PaintH3().
Control routine to draw 1D histograms
Definition at line 5741 of file THistPainter.cxx.
Referenced by Paint().
|
virtual |
Compute histogram parameters used by the drawing routines.
Definition at line 5964 of file THistPainter.cxx.
Referenced by ExecuteEvent(), and Paint().
|
virtual |
Compute histogram parameters used by the drawing routines for a rotated pad.
Definition at line 6201 of file THistPainter.cxx.
Referenced by PaintBarH().
Control function to draw a 2D histogram as a lego plot.
Definition at line 6486 of file THistPainter.cxx.
Referenced by PaintTable().
Draw the axis for legos and surface plots.
Definition at line 6696 of file THistPainter.cxx.
Referenced by Paint2DErrors(), PaintH3(), PaintH3Iso(), PaintLego(), PaintSurface(), PaintTF3(), and PaintTriangles().
|
virtual |
Paint the color palette on the right side of the pad.
Definition at line 6879 of file THistPainter.cxx.
Referenced by PaintArrows(), PaintBoxes(), PaintColorLevels(), PaintContour(), PaintH3(), PaintLego(), PaintScatterPlot(), PaintSurface(), PaintTable(), PaintTH2PolyColorLevels(), and PaintTriangles().
Control function to draw a 2D histogram as a scatter plot.
Definition at line 6917 of file THistPainter.cxx.
Referenced by PaintTable().
Static function to paint special objects like vectors and matrices.
This function is called via gROOT->ProcessLine
to paint these objects without having a direct dependency of the graphics or histogramming system.
Definition at line 7034 of file THistPainter.cxx.
Draw the statistics box for 1D and profile histograms.
Implements TVirtualHistPainter.
Definition at line 7073 of file THistPainter.cxx.
Referenced by Paint(), and PaintBarH().
Draw the statistics box for 2D histograms.
Definition at line 7297 of file THistPainter.cxx.
Referenced by PaintTable().
Draw the statistics box for 3D histograms.
Definition at line 7517 of file THistPainter.cxx.
Referenced by PaintH3().
Control function to draw a 2D histogram as a surface plot.
Definition at line 7757 of file THistPainter.cxx.
Referenced by PaintContour(), and PaintTable().
Control function to draw 2D/3D histograms (tables).
Definition at line 8137 of file THistPainter.cxx.
Referenced by Paint().
Control function to draw a 1D/2D histograms with the bin values.
Definition at line 8552 of file THistPainter.cxx.
Referenced by Paint(), and PaintTable().
|
virtual |
Control function to draw a 3D implicit functions.
Definition at line 8649 of file THistPainter.cxx.
Referenced by PaintH3().
Control function to draw a TH2Poly bins' contours.
Definition at line 8223 of file THistPainter.cxx.
Referenced by PaintTable(), PaintTH2PolyScatterPlot(), and PaintTH2PolyText().
Control function to draw a TH2Poly as a color plot.
Definition at line 8281 of file THistPainter.cxx.
Referenced by PaintTable().
Control function to draw a TH2Poly as a scatter plot.
Definition at line 8378 of file THistPainter.cxx.
Referenced by PaintTable().
Control function to draw a TH2Poly as a text plot.
Definition at line 8492 of file THistPainter.cxx.
Referenced by PaintTable().
|
virtual |
Draw the histogram title.
The title is drawn according to the title alignment returned by GetTitleAlign()
. It is a 2 digits integer): hv
where h
is the horizontal alignment and v
is the vertical alignment.
h
can get the values 1 2 3 for left, center, and rightv
can get the values 1 2 3 for bottom, middle and topfor instance the default alignment is: 13 (left top)
Definition at line 8720 of file THistPainter.cxx.
Referenced by Paint(), PaintBarH(), PaintH3(), PaintH3Iso(), PaintTable(), and PaintTF3().
Control function to draw a table using Delaunay triangles.
Definition at line 8007 of file THistPainter.cxx.
Referenced by PaintTable().
Definition at line 4576 of file THistPainter.cxx.
Referenced by PaintTable().
Process message mess
.
Implements TVirtualHistPainter.
Definition at line 8797 of file THistPainter.cxx.
|
static |
Static function.
Convert Right Ascension, Declination to X,Y using an AITOFF projection. This procedure can be used to create an all-sky map in Galactic coordinates with an equal-area Aitoff projection. Output map coordinates are zero longitude centered. Also called Hammer-Aitoff projection (first presented by Ernst von Hammer in 1892)
source: GMT
code from Ernst-Jan Buis
Definition at line 8827 of file THistPainter.cxx.
Referenced by RecalculateRange(), and TPainter3dAlgorithms::SurfaceCartesian().
|
static |
Static function.
Probably the most famous of the various map projections, the Mercator projection takes its name from Mercator who presented it in 1569. It is a cylindrical, conformal projection with no distortion along the equator. The Mercator projection has been used extensively for world maps in which the distortion towards the polar regions grows rather large, thus incorrectly giving the impression that, for example, Greenland is larger than South America. In reality, the latter is about eight times the size of Greenland. Also, the Former Soviet Union looks much bigger than Africa or South America. One may wonder whether this illusion has had any influence on U.S. foreign policy.' (Source: GMT) code from Ernst-Jan Buis
Definition at line 8863 of file THistPainter.cxx.
Referenced by RecalculateRange(), and TPainter3dAlgorithms::SurfaceCartesian().
|
static |
Static function code from Ernst-Jan Buis.
Definition at line 8888 of file THistPainter.cxx.
Referenced by RecalculateRange(), and TPainter3dAlgorithms::SurfaceCartesian().
|
static |
Static function code from Ernst-Jan Buis.
Definition at line 8876 of file THistPainter.cxx.
Referenced by RecalculateRange(), and TPainter3dAlgorithms::SurfaceCartesian().
|
virtual |
Recompute the histogram range following graphics operations.
Definition at line 8900 of file THistPainter.cxx.
Referenced by ExecuteEvent(), and PaintFrame().
Recursively remove this object from a list.
Typically implemented by classes that can contain multiple references to a same object.
Reimplemented from TObject.
Definition at line 120 of file THistPainter.h.
Set current histogram to h
Implements TVirtualHistPainter.
Definition at line 9012 of file THistPainter.cxx.
Referenced by Paint().
Implements TVirtualHistPainter.
Definition at line 122 of file THistPainter.h.
Show projection (specified by fShowProjection
) of a TH3
.
The drawing option for the projection is in fShowOption
.
First implementation; R.Brun
Full implementation: Tim Tran (timtr) April 2006 an@j lab.o rg
Definition at line 9459 of file THistPainter.cxx.
Referenced by ExecuteEvent().
Show projection onto X.
Definition at line 9288 of file THistPainter.cxx.
Referenced by ShowProjection3().
Show projection onto Y.
Definition at line 9371 of file THistPainter.cxx.
Referenced by ShowProjection3().
|
virtual |
Initialize various options to draw 2D histograms.
Definition at line 9027 of file THistPainter.cxx.
Referenced by Paint(), and PaintTable().
Definition at line 56 of file THistPainter.h.
Referenced by IsInside(), and MakeCuts().
Definition at line 55 of file THistPainter.h.
Referenced by IsInside(), and MakeCuts().
|
protected |
Definition at line 48 of file THistPainter.h.
Referenced by DistancetoPrimitive(), MakeChopt(), Paint(), PaintBarH(), PaintFunction(), PaintH3(), PaintInit(), PaintInitH(), PaintPalette(), PaintStat(), PaintStat2(), PaintStat3(), PaintTable(), and SetHistogram().
|
protected |
Definition at line 50 of file THistPainter.h.
Referenced by GetContourList(), PaintContour(), and PaintTriangles().
|
protected |
Definition at line 44 of file THistPainter.h.
Referenced by DefineColorLevels(), DistancetoPrimitive(), DrawPanel(), ExecuteEvent(), GetContourList(), GetObjectInfo(), MakeChopt(), Paint(), Paint2DErrors(), PaintArrows(), PaintBar(), PaintBarH(), PaintBoxes(), PaintCandlePlot(), PaintColorLevels(), PaintContour(), PaintErrors(), PaintFunction(), PaintH3(), PaintH3Iso(), PaintHist(), PaintInit(), PaintInitH(), PaintLego(), PaintLegoAxis(), PaintPalette(), PaintScatterPlot(), PaintStat(), PaintStat2(), PaintStat3(), PaintSurface(), PaintTable(), PaintText(), PaintTF3(), PaintTH2PolyBins(), PaintTH2PolyColorLevels(), PaintTH2PolyScatterPlot(), PaintTH2PolyText(), PaintTitle(), PaintTriangles(), PaintViolinPlot(), SetHistogram(), SetShowProjection(), ShowProjection3(), ShowProjectionX(), ShowProjectionY(), and TableInit().
|
protected |
Definition at line 49 of file THistPainter.h.
Referenced by DefineColorLevels(), Paint2DErrors(), PaintH3Iso(), PaintLego(), PaintSurface(), PaintTF3(), and PaintTriangles().
|
protected |
Definition at line 54 of file THistPainter.h.
Referenced by IsInside(), and MakeCuts().
|
protected |
Definition at line 51 of file THistPainter.h.
Referenced by DistancetoPrimitive(), ExecuteEvent(), and Paint().
|
protected |
Definition at line 59 of file THistPainter.h.
Referenced by SetShowProjection(), and ShowProjection3().
|
protected |
Definition at line 58 of file THistPainter.h.
Referenced by ExecuteEvent(), SetShowProjection(), ShowProjection3(), ShowProjectionX(), and ShowProjectionY().
|
protected |
Definition at line 57 of file THistPainter.h.
Referenced by GetStack(), and PaintLego().
|
protected |
Definition at line 45 of file THistPainter.h.
Referenced by DistancetoPrimitive(), ExecuteEvent(), GetObjectInfo(), IsInside(), Paint2DErrors(), PaintArrows(), PaintAxis(), PaintBar(), PaintBarH(), PaintBoxes(), PaintCandlePlot(), PaintColorLevels(), PaintContour(), PaintErrors(), PaintHist(), PaintInit(), PaintInitH(), PaintLegoAxis(), PaintScatterPlot(), PaintStat(), PaintText(), PaintViolinPlot(), SetHistogram(), and TableInit().
|
protected |
Definition at line 52 of file THistPainter.h.
Referenced by Paint(), Paint2DErrors(), PaintArrows(), PaintH3Iso(), PaintLego(), PaintScatterPlot(), PaintSurface(), PaintTF3(), PaintTH2PolyScatterPlot(), and PaintTriangles().
|
protected |
Definition at line 46 of file THistPainter.h.
Referenced by DistancetoPrimitive(), GetObjectInfo(), IsInside(), Paint2DErrors(), PaintArrows(), PaintAxis(), PaintBarH(), PaintBoxes(), PaintCandlePlot(), PaintColorLevels(), PaintContour(), PaintLegoAxis(), PaintScatterPlot(), PaintText(), PaintViolinPlot(), SetHistogram(), and TableInit().
|
protected |
Definition at line 53 of file THistPainter.h.
Referenced by Paint(), Paint2DErrors(), PaintArrows(), PaintH3Iso(), PaintLego(), PaintScatterPlot(), PaintSurface(), PaintTF3(), PaintTH2PolyScatterPlot(), and PaintTriangles().
|
protected |
Definition at line 47 of file THistPainter.h.
Referenced by DistancetoPrimitive(), Paint2DErrors(), PaintH3Iso(), PaintLego(), PaintLegoAxis(), PaintSurface(), PaintTF3(), PaintTriangles(), and SetHistogram().