ROOT
6.06/09
Reference Guide
|
The graph painter class.
Implements all graphs' drawing's options.
Graphs are drawn via the painter TGraphPainter
class. This class implements techniques needed to display the various kind of graphs i.e.: TGraph
, TGraphErrors
, TGraphBentErrors
and TGraphAsymmErrors
.
To draw a graph graph
it's enough to do:
graph->Draw("AL");
The option AL
in the Draw()
method means:
A
),The graph should be drawn as a simple line (option L
).
By default a graph is drawn in the current pad in the current coordinate system. To define a suitable coordinate system and draw the axis the option A
must be specified.
TGraphPainter
offers many options to paint the various kind of graphs.
It is separated from the graph classes so that one can have graphs without the graphics overhead, for example in a batch program.
When a displayed graph is modified, there is no need to call Draw()
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
.Graphs can be drawn with the following options:
Option | Description |
---|---|
"A" | Axis are drawn around the graph |
"L" | A simple polyline is drawn |
"F" | A fill area is drawn ('CF' draw a smoothed fill area) |
"C" | A smooth Curve is drawn |
"*" | A Star is plotted at each point |
"P" | The current marker is plotted at each point |
"B" | A Bar chart is drawn |
"1" | When a graph is drawn as a bar chart, this option makes the bars start from the bottom of the pad. By default they start at 0. |
"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. |
Drawing options can be combined. In the following example the graph is drawn as a smooth curve (option "C") with markers (option "P") and with axes (option "A").
The following macro shows the option "B" usage. It can be combined with the option "1".
When a graph is painted with the option C
or L
it is possible to draw a filled area on one side of the line. This is useful to show exclusion zones.
This drawing mode is activated when the absolute value of the graph line width (set by SetLineWidth()
) is greater than 99. In that case the line width number is interpreted as:
100*ff+ll = ffll
ll
represent the normal line widthff
represent the filled area width.The current fill area attributes are used to draw the hatched zone.
Three classes are available to handle graphs with error bars: TGraphErrors
, TGraphAsymmErrors
and TGraphBentErrors
. The following drawing options are specific to graphs with error bars:
Option | Description |
---|---|
"Z" | Do not draw small horizontal and vertical lines the end of the error bars. Without "Z", the default is to draw these. |
">" | An arrow is drawn at the end of the error bars. The size of the arrow is set to 2/3 of the marker size. |
"|>" | A filled arrow is drawn at the end of the error bars. The size of the arrow is set to 2/3 of the marker size. |
"X" | Do not draw error bars. By default, graph classes that have errors are drawn with the errors (TGraph itself has no errors, and so this option has no effect.) |
"||" | Draw only the small vertical/horizontal lines at the ends of the error bars, without drawing the bars themselves. This option is interesting to superimpose statistical-only errors on top of a graph with statistical+systematic errors. |
"[]" | Does the same as option "||" except that it draws additional marks at the ends of the small vertical/horizontal lines. It makes plots less ambiguous in case several graphs are drawn on the same picture. |
"0" | By default, when a data point is outside the visible range along the Y axis, the error bars are not drawn. This option forces error bars' drawing for the data points outside the visible range along the Y axis (see example below). |
"2" | Error rectangles are drawn. |
"3" | A filled area is drawn through the end points of the vertical error bars. |
"4" | A smoothed filled area is drawn through the end points of the vertical error bars. |
"5" | Error rectangles are drawn like option "2". In addition the contour line around the boxes is drawn. This can be useful when boxes' fill colors are very light or in gray scale mode. |
gStyle->SetErrorX(dx)
controls the size of the error along x. dx = 0
removes the error along x.
gStyle->SetEndErrorSize(np)
controls the size of the lines at the end of the error bars (when option 1 is used). By default np=1
. (np represents the number of pixels).
A TGraphErrors
is a TGraph
with error bars. The errors are defined along X and Y and are symmetric: The left and right errors are the same along X and the bottom and up errors are the same along Y.
The option "0" shows the error bars for data points outside range.
The option "3" shows the errors as a band.
The option "4" is similar to the option "3" except that the band is smoothed. As the following picture shows, this option should be used carefully because the smoothing algorithm may show some (huge) "bouncing" effects. In some cases it looks nicer than option "3" (because it is smooth) but it can be misleading.
The following example shows how the option "[]" can be used to superimpose systematic errors on top of a graph with statistical errors.
A TGraphAsymmErrors
is like a TGraphErrors
but the errors defined along X and Y are not symmetric: The left and right errors are different along X and the bottom and up errors are different along Y.
A TGraphBentErrors
is like a TGraphAsymmErrors
. An extra parameter allows to bend the error bars to better see them when several graphs are drawn on the same plot.
The drawing options for the polar graphs are the following:
Option | Description |
---|---|
"O" | Polar labels are drawn orthogonally to the polargram radius. |
"P" | Polymarker are drawn at each point position. |
"E" | Draw error bars. |
"F" | Draw fill area (closed polygon). |
"A" | Force axis redrawing even if a polargram already exists. |
"N" | Disable the display of the polar labels. |
Definition at line 31 of file TGraphPainter.h.
Public Member Functions | |
TGraphPainter () | |
Default constructor. More... | |
virtual | ~TGraphPainter () |
Destructor. More... | |
void | ComputeLogs (Int_t npoints, Int_t opt) |
Compute the logarithm of global variables gxwork and gywork according to the value of Options and put the results in the global variables gxworkl and gyworkl . More... | |
virtual Int_t | DistancetoPrimitiveHelper (TGraph *theGraph, Int_t px, Int_t py) |
Compute distance from point px,py to a graph. More... | |
virtual void | DrawPanelHelper (TGraph *theGraph) |
Display a panel with all histogram drawing options. More... | |
virtual void | ExecuteEventHelper (TGraph *theGraph, Int_t event, Int_t px, Int_t py) |
Execute action corresponding to one event. More... | |
virtual char * | GetObjectInfoHelper (TGraph *theGraph, Int_t px, Int_t py) const |
void | PaintHelper (TGraph *theGraph, Option_t *option) |
Paint a any kind of TGraph. More... | |
virtual void | PaintGraph (TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) |
[Control function to draw a graph.]($GP01) More... | |
virtual void | PaintGrapHist (TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) |
This is a service method used by THistPainter to paint 1D histograms. More... | |
void | PaintGraphAsymmErrors (TGraph *theGraph, Option_t *option) |
Paint this TGraphAsymmErrors with its current attributes. More... | |
void | PaintGraphBentErrors (TGraph *theGraph, Option_t *option) |
[Paint this TGraphBentErrors with its current attributes.]($GP03) More... | |
void | PaintGraphErrors (TGraph *theGraph, Option_t *option) |
[Paint this TGraphErrors with its current attributes.]($GP03) More... | |
void | PaintGraphPolar (TGraph *theGraph, Option_t *option) |
[Paint this TGraphPolar with its current attributes.]($GP04) More... | |
void | PaintGraphQQ (TGraph *theGraph, Option_t *option) |
Paint this graphQQ. No options for the time being. More... | |
void | PaintGraphSimple (TGraph *theGraph, Option_t *option) |
Paint a simple graph, without errors bars. More... | |
void | PaintPolyLineHatches (TGraph *theGraph, Int_t n, const Double_t *x, const Double_t *y) |
Paint a polyline with hatches on one side showing an exclusion zone. More... | |
void | PaintStats (TGraph *theGraph, TF1 *fit) |
Paint the statistics box with the fit info. More... | |
void | Smooth (TGraph *theGraph, Int_t npoints, Double_t *x, Double_t *y, Int_t drawtype) |
Smooth a curve given by N points. More... | |
Public Member Functions inherited from TVirtualGraphPainter | |
TVirtualGraphPainter () | |
virtual | ~TVirtualGraphPainter () |
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 Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
Computes distance from point (px,py) to the 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 void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute action corresponding to an event at (px,py). 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 char * | GetObjectInfo (Int_t px, Int_t py) const |
Returns string containing info about the object at position (px,py). More... | |
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 | Paint (Option_t *option="") |
This method must be overridden if a class wants to paint itself. 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 | RecursiveRemove (TObject *obj) |
Recursively remove this object from a list. 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... | |
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) } |
Static Public Member Functions inherited from TVirtualGraphPainter | |
static TVirtualGraphPainter * | GetPainter () |
static void | SetPainter (TVirtualGraphPainter *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 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 <TGraphPainter.h>
TGraphPainter::TGraphPainter | ( | ) |
Default constructor.
Definition at line 436 of file TGraphPainter.cxx.
|
virtual |
Destructor.
Definition at line 444 of file TGraphPainter.cxx.
Compute the logarithm of global variables gxwork
and gywork
according to the value of Options and put the results in the global variables gxworkl
and gyworkl
.
npoints : Number of points in gxwork and in gywork.
Definition at line 459 of file TGraphPainter.cxx.
Referenced by PaintGraph(), and PaintGrapHist().
Compute distance from point px,py to a graph.
Compute the closest distance of approach from point px,py to this line. The distance is computed in pixels units.
Implements TVirtualGraphPainter.
Definition at line 487 of file TGraphPainter.cxx.
Display a panel with all histogram drawing options.
Implements TVirtualGraphPainter.
Definition at line 570 of file TGraphPainter.cxx.
|
virtual |
Execute action corresponding to one event.
This member function is called when a graph is clicked with the locator.
If the left mouse button is clicked on one of the line end points, this point follows the cursor until button is released.
If the middle mouse button clicked, the line is moved parallel to itself until the button is released.
Implements TVirtualGraphPainter.
Definition at line 595 of file TGraphPainter.cxx.
Implements TVirtualGraphPainter.
Definition at line 875 of file TGraphPainter.cxx.
|
virtual |
[Control function to draw a graph.]($GP01)
Implements TVirtualGraphPainter.
Definition at line 911 of file TGraphPainter.cxx.
Referenced by PaintGraphAsymmErrors(), PaintGraphBentErrors(), PaintGraphErrors(), PaintGraphPolar(), and PaintGraphSimple().
Paint this TGraphAsymmErrors with its current attributes.
Definition at line 2013 of file TGraphPainter.cxx.
Referenced by PaintHelper().
[Paint this TGraphBentErrors with its current attributes.]($GP03)
Definition at line 2260 of file TGraphPainter.cxx.
Referenced by PaintHelper().
[Paint this TGraphErrors with its current attributes.]($GP03)
Definition at line 2516 of file TGraphPainter.cxx.
Referenced by PaintHelper().
|
virtual |
This is a service method used by THistPainter
to paint 1D histograms.
It is not used to paint TGraph.
Input parameters:
The aspect of the histogram is done according to the value of the chopt.
Option | Description |
---|---|
"R" | Graph is drawn horizontaly, parallel to X axis. (default is vertically, parallel to Y axis).If option R is selected the user must give 2 values for Y (y[0]=YMIN and y[1]=YMAX) or N values for X, one for each channel. Otherwise the user must give, N values for Y, one for each channel or 2 values for X (x[0]=XMIN and x[1]=XMAX) |
"L" | A simple polyline beetwen every points is drawn. |
"H" | An Histogram with equidistant bins is drawn as a polyline. |
"F" | An histogram with equidistant bins is drawn as a fill area. Contour is not drawn unless chopt='H' is also selected.. |
"N" | Non equidistant bins (default is equidistant). If N is the number of channels array X and Y must be dimensionned as follow: If option R is not selected (default) then the user must give (N+1) values for X (limits of channels) or N values for Y, one for each channel. Otherwise the user must give (N+1) values for Y (limits of channels). or N values for X, one for each channel |
"F1" | Idem as 'F' except that fill area base line is the minimum of the pad instead of Y=0. |
"F2" | Draw a Fill area polyline connecting the center of bins |
"C" | A smooth Curve is drawn. |
"*" | A Star is plotted at the center of each bin. |
"P" | Idem with the current marker. |
"P0" | Idem with the current marker. Empty bins also drawn. |
"B" | A Bar chart with equidistant bins is drawn as fill areas (Contours are drawn). |
"][" | "Cutoff" style. When this option is selected together with H option, the first and last vertical lines of the histogram are not drawn. |
Implements TVirtualGraphPainter.
Definition at line 1326 of file TGraphPainter.cxx.
Referenced by PaintGraphSimple().
[Paint this TGraphPolar with its current attributes.]($GP04)
Definition at line 2763 of file TGraphPainter.cxx.
Referenced by PaintHelper().
Paint this graphQQ. No options for the time being.
Definition at line 3057 of file TGraphPainter.cxx.
Referenced by PaintHelper().
Paint a simple graph, without errors bars.
Definition at line 3117 of file TGraphPainter.cxx.
Referenced by PaintGraphAsymmErrors(), PaintGraphBentErrors(), PaintGraphErrors(), PaintGraphQQ(), and PaintHelper().
Paint a any kind of TGraph.
Implements TVirtualGraphPainter.
Definition at line 884 of file TGraphPainter.cxx.
void TGraphPainter::PaintPolyLineHatches | ( | TGraph * | theGraph, |
Int_t | n, | ||
const Double_t * | x, | ||
const Double_t * | y | ||
) |
Paint a polyline with hatches on one side showing an exclusion zone.
x and y are the the vectors holding the polyline and n the number of points in the polyline and w
the width of the hatches. w
can be negative. This method is not meant to be used directly. It is called automatically according to the line style convention.
Definition at line 3155 of file TGraphPainter.cxx.
Referenced by PaintGraph(), and Smooth().
Paint the statistics box with the fit info.
Implements TVirtualGraphPainter.
Definition at line 3360 of file TGraphPainter.cxx.
Referenced by PaintGraph().
void TGraphPainter::Smooth | ( | TGraph * | theGraph, |
Int_t | npoints, | ||
Double_t * | x, | ||
Double_t * | y, | ||
Int_t | drawtype | ||
) |
Smooth a curve given by N points.
The original code is from an underlaying routine for Draw based on the CERN GD3 routine TVIPTE:
Author - Marlow etc. Modified by - P. Ward Date - 3.10.1973
This method draws a smooth tangentially continuous curve through the sequence of data points P(I) I=1,N where P(I)=(X(I),Y(I)). The curve is approximated by a polygonal arc of short vectors. The data points can represent open curves, P(1) != P(N) or closed curves P(2) == P(N). If a tangential discontinuity at P(I) is required, then set P(I)=P(I+1). Loops are also allowed.
Reference Marlow and Powell, Harwell report No.R.7092.1972 MCCONALOGUE, Computer Journal VOL.13, NO4, NOV1970P p392 6
Definition at line 3473 of file TGraphPainter.cxx.
Referenced by PaintGraph(), and PaintGrapHist().