Logo ROOT   6.17/01
Reference Guide
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
TGraph Class Reference

A Graph is a graphics object made of two arrays X and Y with npoints each.

The TGraph painting is performed thanks to the TGraphPainter class. All details about the various painting options are given in this class.

Notes

The picture below gives an example:

{
TCanvas *c1 = new TCanvas("c1","A Simple Graph Example",200,10,500,300);
Double_t x[100], y[100];
Int_t n = 20;
for (Int_t i=0;i<n;i++) {
x[i] = i*0.1;
y[i] = 10*sin(x[i]+0.2);
}
TGraph* gr = new TGraph(n,x,y);
gr->Draw("AC*");
}
pict1_TGraph_001.png

Definition at line 41 of file TGraph.h.

Public Types

enum  EStatusBits {
  kClipFrame = BIT(10), kResetHisto = BIT(17), kNotEditable = BIT(18), kIsSortedX = BIT(19),
  kIsHighlight = BIT(20)
}
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kInconsistent = 0x08000000,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5),
  kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 

Public Member Functions

 TGraph ()
 Graph default constructor. More...
 
 TGraph (Int_t n)
 Constructor with only the number of points set the arrays x and y will be set later. More...
 
 TGraph (Int_t n, const Int_t *x, const Int_t *y)
 Graph normal constructor with ints. More...
 
 TGraph (Int_t n, const Float_t *x, const Float_t *y)
 Graph normal constructor with floats. More...
 
 TGraph (Int_t n, const Double_t *x, const Double_t *y)
 Graph normal constructor with doubles. More...
 
 TGraph (const TGraph &gr)
 Copy constructor for this graph. More...
 
 TGraph (const TVectorF &vx, const TVectorF &vy)
 Graph constructor with two vectors of floats in input A graph is build with the X coordinates taken from vx and Y coord from vy The number of points in the graph is the minimum of number of points in vx and vy. More...
 
 TGraph (const TVectorD &vx, const TVectorD &vy)
 Graph constructor with two vectors of doubles in input A graph is build with the X coordinates taken from vx and Y coord from vy The number of points in the graph is the minimum of number of points in vx and vy. More...
 
 TGraph (const TH1 *h)
 Graph constructor importing its parameters from the TH1 object passed as argument. More...
 
 TGraph (const TF1 *f, Option_t *option="")
 Graph constructor importing its parameters from the TF1 object passed as argument. More...
 
 TGraph (const char *filename, const char *format="%lg %lg", Option_t *option="")
 Graph constructor reading input from filename. More...
 
virtual ~TGraph ()
 Graph default destructor. More...
 
virtual void Apply (TF1 *f)
 Apply function f to all the data points f may be a 1-D function TF1 or 2-d function TF2 The Y values of the graph are replaced by the new values computed using the function. More...
 
virtual void Browse (TBrowser *b)
 Browse. More...
 
virtual Double_t Chisquare (TF1 *f1, Option_t *option="") const
 Return the chisquare of this graph with respect to f1. More...
 
virtual void ComputeRange (Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) const
 Compute the x/y range of the points in this graph. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Compute distance from point px,py to a graph. More...
 
virtual void Draw (Option_t *chopt="")
 Draw this graph with its current attributes. More...
 
virtual void DrawGraph (Int_t n, const Int_t *x, const Int_t *y, Option_t *option="")
 Draw this graph with new attributes. More...
 
virtual void DrawGraph (Int_t n, const Float_t *x, const Float_t *y, Option_t *option="")
 Draw this graph with new attributes. More...
 
virtual void DrawGraph (Int_t n, const Double_t *x=0, const Double_t *y=0, Option_t *option="")
 Draw this graph with new attributes. More...
 
virtual void DrawPanel ()
 Display a panel with all graph drawing options. More...
 
virtual Double_t Eval (Double_t x, TSpline *spline=0, Option_t *option="") const
 Interpolate points in this graph at x using a TSpline. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to one event. More...
 
virtual void Expand (Int_t newsize)
 If array sizes <= newsize, expand storage to 2*newsize. More...
 
virtual void Expand (Int_t newsize, Int_t step)
 If graph capacity is less than newsize points then make array sizes equal to least multiple of step to contain newsize points. More...
 
virtual TObjectFindObject (const char *name) const
 Search object named name in the list of functions. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Search object obj in the list of functions. More...
 
virtual TFitResultPtr Fit (const char *formula, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0)
 Fit this graph with function with name fname. More...
 
virtual TFitResultPtr Fit (TF1 *f1, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0)
 Fit this graph with function f1. More...
 
virtual void FitPanel ()
 Display a GUI panel with all graph fit options. More...
 
virtual Double_t GetCorrelationFactor () const
 Return graph correlation factor. More...
 
virtual Double_t GetCovariance () const
 Return covariance of vectors x,y. More...
 
Bool_t GetEditable () const
 Return kTRUE if kNotEditable bit is not set, kFALSE otherwise. More...
 
virtual Double_t GetErrorX (Int_t bin) const
 This function is called by GraphFitChisquare. More...
 
virtual Double_t GetErrorXhigh (Int_t bin) const
 This function is called by GraphFitChisquare. More...
 
virtual Double_t GetErrorXlow (Int_t bin) const
 This function is called by GraphFitChisquare. More...
 
virtual Double_t GetErrorY (Int_t bin) const
 This function is called by GraphFitChisquare. More...
 
virtual Double_t GetErrorYhigh (Int_t bin) const
 This function is called by GraphFitChisquare. More...
 
virtual Double_t GetErrorYlow (Int_t bin) const
 This function is called by GraphFitChisquare. More...
 
virtual Double_tGetEX () const
 
virtual Double_tGetEXhigh () const
 
virtual Double_tGetEXhighd () const
 
virtual Double_tGetEXlow () const
 
virtual Double_tGetEXlowd () const
 
virtual Double_tGetEY () const
 
virtual Double_tGetEYhigh () const
 
virtual Double_tGetEYhighd () const
 
virtual Double_tGetEYlow () const
 
virtual Double_tGetEYlowd () const
 
TF1GetFunction (const char *name) const
 Return pointer to function with name. More...
 
TH1FGetHistogram () const
 Returns a pointer to the histogram used to draw the axis Takes into account the two following cases. More...
 
TListGetListOfFunctions () const
 
Double_t GetMaximum () const
 
Int_t GetMaxSize () const
 
virtual Double_t GetMean (Int_t axis=1) const
 Return mean value of X (axis=1) or Y (axis=2) More...
 
Double_t GetMinimum () const
 
Int_t GetN () const
 
virtual Int_t GetPoint (Int_t i, Double_t &x, Double_t &y) const
 Get x and y values for point number i. More...
 
virtual Double_t GetRMS (Int_t axis=1) const
 Return RMS of X (axis=1) or Y (axis=2) More...
 
Double_tGetX () const
 
TAxisGetXaxis () const
 Get x axis of the graph. More...
 
Double_tGetY () const
 
TAxisGetYaxis () const
 Get y axis of the graph. More...
 
virtual void InitExpo (Double_t xmin=0, Double_t xmax=0)
 Compute Initial values of parameters for an exponential. More...
 
virtual void InitGaus (Double_t xmin=0, Double_t xmax=0)
 Compute Initial values of parameters for a gaussian. More...
 
virtual void InitPolynom (Double_t xmin=0, Double_t xmax=0)
 Compute Initial values of parameters for a polynom. More...
 
virtual Int_t InsertPoint ()
 Insert a new point at the mouse position. More...
 
virtual void InsertPointBefore (Int_t ipoint, Double_t x, Double_t y)
 Insert a new point with coordinates (x,y) before the point number ipoint. More...
 
virtual Double_t Integral (Int_t first=0, Int_t last=-1) const
 Integrate the TGraph data within a given (index) range. More...
 
virtual Bool_t IsEditable () const
 
virtual Bool_t IsHighlight () const
 
virtual Int_t IsInside (Double_t x, Double_t y) const
 Return 1 if the point (x,y) is inside the polygon defined by the graph vertices 0 otherwise. More...
 
virtual void LeastSquareFit (Int_t m, Double_t *a, Double_t xmin=0, Double_t xmax=0)
 Least squares polynomial fitting without weights. More...
 
virtual void LeastSquareLinearFit (Int_t n, Double_t &a0, Double_t &a1, Int_t &ifail, Double_t xmin=0, Double_t xmax=0)
 Least square linear fit without weights. More...
 
virtual Int_t Merge (TCollection *list)
 Adds all graphs from the collection to this graph. More...
 
TGraphoperator= (const TGraph &)
 Equal operator for this graph. More...
 
virtual void Paint (Option_t *chopt="")
 Draw this graph with its current attributes. More...
 
void PaintGraph (Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt)
 Draw the (x,y) as a graph. More...
 
void PaintGrapHist (Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt)
 Draw the (x,y) as a histogram. More...
 
virtual void PaintStats (TF1 *fit)
 Draw the stats. More...
 
virtual void Print (Option_t *chopt="") const
 Print graph values. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove object from the list of functions. More...
 
virtual Int_t RemovePoint ()
 Delete point close to the mouse position. More...
 
virtual Int_t RemovePoint (Int_t ipoint)
 Delete point number ipoint. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save primitive as a C++ statement(s) on output stream out. More...
 
virtual void Set (Int_t n)
 Set number of points in the graph Existing coordinates are preserved New coordinates above fNpoints are preset to 0. More...
 
virtual void SetEditable (Bool_t editable=kTRUE)
 if editable=kFALSE, the graph cannot be modified with the mouse by default a TGraph is editable More...
 
virtual void SetHighlight (Bool_t set=kTRUE)
 Set highlight (enable/disble) mode for the graph by default highlight mode is disable. More...
 
virtual void SetHistogram (TH1F *h)
 
virtual void SetMaximum (Double_t maximum=-1111)
 Set the maximum of the graph. More...
 
virtual void SetMinimum (Double_t minimum=-1111)
 Set the minimum of the graph. More...
 
virtual void SetName (const char *name="")
 Set graph name. More...
 
virtual void SetNameTitle (const char *name="", const char *title="")
 Set graph name and title. More...
 
virtual void SetPoint (Int_t i, Double_t x, Double_t y)
 Set x and y values for point number i. More...
 
virtual void SetTitle (const char *title="")
 Set graph title. More...
 
virtual void Sort (Bool_t(*greater)(const TGraph *, Int_t, Int_t)=&TGraph::CompareX, Bool_t ascending=kTRUE, Int_t low=0, Int_t high=-1111)
 Sorts the points of this TGraph using in-place quicksort (see e.g. More...
 
virtual void UseCurrentStyle ()
 Set current style settings in this graph This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
void Zero (Int_t &k, Double_t AZ, Double_t BZ, Double_t E2, Double_t &X, Double_t &Y, Int_t maxiterations)
 Find zero of a continuous function. More...
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TString &name, const TString &title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
virtual ~TNamed ()
 TNamed destructor. More...
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings (""). More...
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects. More...
 
virtual void Copy (TObject &named) const
 Copy this to obj. More...
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 List TNamed name and title. More...
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. 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...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. 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 Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. 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...
 
void InvertBit (UInt_t f)
 
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 IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
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...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. 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)
 
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 SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. 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...
 
- Public Member Functions inherited from TAttLine
 TAttLine ()
 AttLine default constructor. More...
 
 TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth)
 AttLine normal constructor. More...
 
virtual ~TAttLine ()
 AttLine destructor. More...
 
void Copy (TAttLine &attline) const
 Copy this line attributes to a new TAttLine. More...
 
Int_t DistancetoLine (Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
 Compute distance from point px,py to a line. More...
 
virtual Color_t GetLineColor () const
 Return the line color. More...
 
virtual Style_t GetLineStyle () const
 Return the line style. More...
 
virtual Width_t GetLineWidth () const
 Return the line width. More...
 
virtual void Modify ()
 Change current line attributes if necessary. More...
 
virtual void ResetAttLine (Option_t *option="")
 Reset this line attributes to default values. More...
 
virtual void SaveLineAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
 Save line attributes as C++ statement(s) on output stream out. More...
 
virtual void SetLineAttributes ()
 Invoke the DialogCanvas Line attributes. More...
 
virtual void SetLineColor (Color_t lcolor)
 Set the line color. More...
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color. More...
 
virtual void SetLineStyle (Style_t lstyle)
 Set the line style. More...
 
virtual void SetLineWidth (Width_t lwidth)
 Set the line width. More...
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 AttFill default constructor. More...
 
 TAttFill (Color_t fcolor, Style_t fstyle)
 AttFill normal constructor. More...
 
virtual ~TAttFill ()
 AttFill destructor. More...
 
void Copy (TAttFill &attfill) const
 Copy this fill attributes to a new TAttFill. More...
 
virtual Color_t GetFillColor () const
 Return the fill area color. More...
 
virtual Style_t GetFillStyle () const
 Return the fill area style. More...
 
virtual Bool_t IsTransparent () const
 
virtual void Modify ()
 Change current fill area attributes if necessary. More...
 
virtual void ResetAttFill (Option_t *option="")
 Reset this fill attributes to default values. More...
 
virtual void SaveFillAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
 Save fill attributes as C++ statement(s) on output stream out. More...
 
virtual void SetFillAttributes ()
 Invoke the DialogCanvas Fill attributes. More...
 
virtual void SetFillColor (Color_t fcolor)
 Set the fill area color. More...
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color. More...
 
virtual void SetFillStyle (Style_t fstyle)
 Set the fill area style. More...
 
- Public Member Functions inherited from TAttMarker
 TAttMarker ()
 TAttMarker default constructor. More...
 
 TAttMarker (Color_t color, Style_t style, Size_t msize)
 TAttMarker normal constructor. More...
 
virtual ~TAttMarker ()
 TAttMarker destructor. More...
 
void Copy (TAttMarker &attmarker) const
 Copy this marker attributes to a new TAttMarker. More...
 
virtual Color_t GetMarkerColor () const
 Return the marker color. More...
 
virtual Size_t GetMarkerSize () const
 Return the marker size. More...
 
virtual Style_t GetMarkerStyle () const
 Return the marker style. More...
 
virtual void Modify ()
 Change current marker attributes if necessary. More...
 
virtual void ResetAttMarker (Option_t *toption="")
 Reset this marker attributes to the default values. More...
 
virtual void SaveMarkerAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1)
 Save line attributes as C++ statement(s) on output stream out. More...
 
virtual void SetMarkerAttributes ()
 Invoke the DialogCanvas Marker attributes. More...
 
virtual void SetMarkerColor (Color_t mcolor=1)
 Set the marker color. More...
 
virtual void SetMarkerColorAlpha (Color_t mcolor, Float_t malpha)
 Set a transparent marker color. More...
 
virtual void SetMarkerSize (Size_t msize=1)
 Set the marker size. More...
 
virtual void SetMarkerStyle (Style_t mstyle=1)
 Set the marker style. More...
 

Static Public Member Functions

static Bool_t CompareArg (const TGraph *gr, Int_t left, Int_t right)
 Return kTRUE if point number "left"'s argument (angle with respect to positive x-axis) is bigger than that of point number "right". More...
 
static Bool_t CompareRadius (const TGraph *gr, Int_t left, Int_t right)
 Return kTRUE if point number "left"'s distance to origin is bigger than that of point number "right". More...
 
static Bool_t CompareX (const TGraph *gr, Int_t left, Int_t right)
 Return kTRUE if fX[left] > fX[right]. Can be used by Sort. More...
 
static Bool_t CompareY (const TGraph *gr, Int_t left, Int_t right)
 Return kTRUE if fY[left] > fY[right]. Can be used by Sort. More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Member Functions

virtual Double_t ** Allocate (Int_t newsize)
 
Double_t ** AllocateArrays (Int_t Narrays, Int_t arraySize)
 Allocate arrays. More...
 
virtual void CopyAndRelease (Double_t **newarrays, Int_t ibegin, Int_t iend, Int_t obegin)
 Copy points from fX and fY to arrays[0] and arrays[1] or to fX and fY if arrays == 0 and ibegin != iend. More...
 
virtual Bool_t CopyPoints (Double_t **newarrays, Int_t ibegin, Int_t iend, Int_t obegin)
 Copy points from fX and fY to arrays[0] and arrays[1] or to fX and fY if arrays == 0 and ibegin != iend. More...
 
Bool_t CtorAllocate ()
 In constructors set fNpoints than call this method. More...
 
virtual Bool_t DoMerge (const TGraph *g)
 protected function to perform the merge operation of a graph More...
 
Double_t ** ExpandAndCopy (Int_t size, Int_t iend)
 if size > fMaxSize allocate new arrays of 2*size points and copy iend first points. More...
 
virtual void FillZero (Int_t begin, Int_t end, Bool_t from_ctor=kTRUE)
 Set zero values for point arrays in the range [begin, end) Should be redefined in descendant classes. More...
 
Double_t ** ShrinkAndCopy (Int_t size, Int_t iend)
 if size*2 <= fMaxSize allocate new arrays of size points, copy points [0,oend). More...
 
virtual void SwapPoints (Int_t pos1, Int_t pos2)
 Swap points. More...
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Static Protected Member Functions

static void SwapValues (Double_t *arr, Int_t pos1, Int_t pos2)
 Swap values. More...
 

Protected Attributes

TListfFunctions
 Pointer to list of functions (fits and user) More...
 
TH1FfHistogram
 Pointer to histogram used for drawing axis. More...
 
Double_t fMaximum
 Maximum value for plotting along y. More...
 
Int_t fMaxSize
 !Current dimension of arrays fX and fY More...
 
Double_t fMinimum
 Minimum value for plotting along y. More...
 
Int_t fNpoints
 Number of points <= fMaxSize. More...
 
Double_tfX
 [fNpoints] array of X points More...
 
Double_tfY
 [fNpoints] array of Y points More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TAttLine
Color_t fLineColor
 Line color. More...
 
Style_t fLineStyle
 Line style. More...
 
Width_t fLineWidth
 Line width. More...
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 Fill area color. More...
 
Style_t fFillStyle
 Fill area style. More...
 
- Protected Attributes inherited from TAttMarker
Color_t fMarkerColor
 Marker color. More...
 
Size_t fMarkerSize
 Marker size. More...
 
Style_t fMarkerStyle
 Marker style. More...
 

#include <TGraph.h>

Inheritance diagram for TGraph:
[legend]

Member Enumeration Documentation

◆ EStatusBits

Enumerator
kClipFrame 

clip to the frame boundary

kResetHisto 

fHistogram must be reset in GetHistogram

kNotEditable 

bit set if graph is non editable

kIsSortedX 

graph is sorted in X points

kIsHighlight 

bit set if graph is highlight

Definition at line 69 of file TGraph.h.

Constructor & Destructor Documentation

◆ TGraph() [1/11]

TGraph::TGraph ( )

Graph default constructor.

Definition at line 86 of file TGraph.cxx.

◆ TGraph() [2/11]

TGraph::TGraph ( Int_t  n)

Constructor with only the number of points set the arrays x and y will be set later.

Definition at line 96 of file TGraph.cxx.

◆ TGraph() [3/11]

TGraph::TGraph ( Int_t  n,
const Int_t x,
const Int_t y 
)

Graph normal constructor with ints.

Definition at line 107 of file TGraph.cxx.

◆ TGraph() [4/11]

TGraph::TGraph ( Int_t  n,
const Float_t x,
const Float_t y 
)

Graph normal constructor with floats.

Definition at line 125 of file TGraph.cxx.

◆ TGraph() [5/11]

TGraph::TGraph ( Int_t  n,
const Double_t x,
const Double_t y 
)

Graph normal constructor with doubles.

Definition at line 143 of file TGraph.cxx.

◆ TGraph() [6/11]

TGraph::TGraph ( const TGraph gr)

Copy constructor for this graph.

Definition at line 160 of file TGraph.cxx.

◆ TGraph() [7/11]

TGraph::TGraph ( const TVectorF vx,
const TVectorF vy 
)

Graph constructor with two vectors of floats in input A graph is build with the X coordinates taken from vx and Y coord from vy The number of points in the graph is the minimum of number of points in vx and vy.

Definition at line 248 of file TGraph.cxx.

◆ TGraph() [8/11]

TGraph::TGraph ( const TVectorD vx,
const TVectorD vy 
)

Graph constructor with two vectors of doubles in input A graph is build with the X coordinates taken from vx and Y coord from vy The number of points in the graph is the minimum of number of points in vx and vy.

Definition at line 267 of file TGraph.cxx.

◆ TGraph() [9/11]

TGraph::TGraph ( const TH1 h)

Graph constructor importing its parameters from the TH1 object passed as argument.

Definition at line 283 of file TGraph.cxx.

◆ TGraph() [10/11]

TGraph::TGraph ( const TF1 f,
Option_t option = "" 
)

Graph constructor importing its parameters from the TF1 object passed as argument.

  • if option =="" (default), a TGraph is created with points computed at the fNpx points of f.
  • if option =="d", a TGraph is created with points computed with the derivatives at the fNpx points of f.
  • if option =="i", a TGraph is created with points computed with the integral at the fNpx points of f.
  • if option =="I", a TGraph is created with points computed with the integral at the fNpx+1 points of f and the integral is normalized to 1.

Definition at line 325 of file TGraph.cxx.

◆ TGraph() [11/11]

TGraph::TGraph ( const char *  filename,
const char *  format = "%lg %lg",
Option_t option = "" 
)

Graph constructor reading input from filename.

filename is assumed to contain at least two columns of numbers. the string format is by default "%%lg %%lg". this is a standard c formatting for scanf. If columns of numbers should be skipped, a "%*lg" or "%*s" for each column can be added, e.g. "%%lg %%*lg %%lg" would read x-values from the first and y-values from the third column. For files separated by a specific delimiter different from ' ' and '' (e.g. ';' in csv files) you can avoid using %*s to bypass this delimiter by explicitly specify the "option" argument, e.g. option=" \t,;" for columns of figures separated by any of these characters (' ', '', ',', ';') used once (e.g. "1;1") or in a combined way (" 1;,;; 1"). Note in that case, the instantiation is about 2 times slower.

Definition at line 384 of file TGraph.cxx.

◆ ~TGraph()

TGraph::~TGraph ( )
virtual

Graph default destructor.

Definition at line 505 of file TGraph.cxx.

Member Function Documentation

◆ Allocate()

Double_t ** TGraph::Allocate ( Int_t  newsize)
inlineprotectedvirtual

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 187 of file TGraph.h.

◆ AllocateArrays()

Double_t ** TGraph::AllocateArrays ( Int_t  Narrays,
Int_t  arraySize 
)
protected

Allocate arrays.

Definition at line 529 of file TGraph.cxx.

◆ Apply()

void TGraph::Apply ( TF1 f)
virtual

Apply function f to all the data points f may be a 1-D function TF1 or 2-d function TF2 The Y values of the graph are replaced by the new values computed using the function.

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 552 of file TGraph.cxx.

◆ Browse()

void TGraph::Browse ( TBrowser b)
virtual

Browse.

Reimplemented from TObject.

Definition at line 565 of file TGraph.cxx.

◆ Chisquare()

Double_t TGraph::Chisquare ( TF1 func,
Option_t option = "" 
) const
virtual

Return the chisquare of this graph with respect to f1.

The chisquare is computed as the sum of the quantity below at each point:

\[ \frac{(y-f1(x))^{2}}{ey^{2}+(\frac{1}{2}(exl+exh)f1'(x))^{2}} \]

where x and y are the graph point coordinates and f1'(x) is the derivative of function f1(x). This method to approximate the uncertainty in y because of the errors in x, is called "effective variance" method. In case of a pure TGraph, the denominator is 1. In case of a TGraphErrors or TGraphAsymmErrors the errors are taken into account. By default the range of the graph is used whatever function range. Use option "R" to use the function range

Definition at line 591 of file TGraph.cxx.

◆ CompareArg()

Bool_t TGraph::CompareArg ( const TGraph gr,
Int_t  left,
Int_t  right 
)
static

Return kTRUE if point number "left"'s argument (angle with respect to positive x-axis) is bigger than that of point number "right".

Can be used by Sort.

Definition at line 608 of file TGraph.cxx.

◆ CompareRadius()

Bool_t TGraph::CompareRadius ( const TGraph gr,
Int_t  left,
Int_t  right 
)
static

Return kTRUE if point number "left"'s distance to origin is bigger than that of point number "right".

Can be used by Sort.

Definition at line 636 of file TGraph.cxx.

◆ CompareX()

Bool_t TGraph::CompareX ( const TGraph gr,
Int_t  left,
Int_t  right 
)
static

Return kTRUE if fX[left] > fX[right]. Can be used by Sort.

Definition at line 619 of file TGraph.cxx.

◆ CompareY()

Bool_t TGraph::CompareY ( const TGraph gr,
Int_t  left,
Int_t  right 
)
static

Return kTRUE if fY[left] > fY[right]. Can be used by Sort.

Definition at line 627 of file TGraph.cxx.

◆ ComputeRange()

void TGraph::ComputeRange ( Double_t xmin,
Double_t ymin,
Double_t xmax,
Double_t ymax 
) const
virtual

Compute the x/y range of the points in this graph.

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 645 of file TGraph.cxx.

◆ CopyAndRelease()

void TGraph::CopyAndRelease ( Double_t **  newarrays,
Int_t  ibegin,
Int_t  iend,
Int_t  obegin 
)
protectedvirtual

Copy points from fX and fY to arrays[0] and arrays[1] or to fX and fY if arrays == 0 and ibegin != iend.

If newarrays is non null, replace fX, fY with pointers from newarrays[0,1]. Delete newarrays, old fX and fY

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 676 of file TGraph.cxx.

◆ CopyPoints()

Bool_t TGraph::CopyPoints ( Double_t **  arrays,
Int_t  ibegin,
Int_t  iend,
Int_t  obegin 
)
protectedvirtual

Copy points from fX and fY to arrays[0] and arrays[1] or to fX and fY if arrays == 0 and ibegin != iend.

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 693 of file TGraph.cxx.

◆ CtorAllocate()

Bool_t TGraph::CtorAllocate ( void  )
protected

In constructors set fNpoints than call this method.

Return kFALSE if the graph will contain no points. Note: This function should be called only from the constructor since it does not delete previously existing arrays

Definition at line 719 of file TGraph.cxx.

◆ DistancetoPrimitive()

Int_t TGraph::DistancetoPrimitive ( Int_t  px,
Int_t  py 
)
virtual

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.

Reimplemented from TObject.

Definition at line 789 of file TGraph.cxx.

◆ DoMerge()

Bool_t TGraph::DoMerge ( const TGraph g)
protectedvirtual

protected function to perform the merge operation of a graph

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 2459 of file TGraph.cxx.

◆ Draw()

void TGraph::Draw ( Option_t option = "")
virtual

Draw this graph with its current attributes.

The options to draw a graph are described in TGraphPainter class.

Reimplemented from TObject.

Reimplemented in TGraphPolar.

Definition at line 745 of file TGraph.cxx.

◆ DrawGraph() [1/3]

void TGraph::DrawGraph ( Int_t  n,
const Int_t x,
const Int_t y,
Option_t option = "" 
)
virtual

Draw this graph with new attributes.

Definition at line 799 of file TGraph.cxx.

◆ DrawGraph() [2/3]

void TGraph::DrawGraph ( Int_t  n,
const Float_t x,
const Float_t y,
Option_t option = "" 
)
virtual

Draw this graph with new attributes.

Definition at line 812 of file TGraph.cxx.

◆ DrawGraph() [3/3]

void TGraph::DrawGraph ( Int_t  n,
const Double_t x = 0,
const Double_t y = 0,
Option_t option = "" 
)
virtual

Draw this graph with new attributes.

Definition at line 825 of file TGraph.cxx.

◆ DrawPanel()

void TGraph::DrawPanel ( )
virtual

Display a panel with all graph drawing options.

Definition at line 842 of file TGraph.cxx.

◆ Eval()

Double_t TGraph::Eval ( Double_t  x,
TSpline spline = 0,
Option_t option = "" 
) const
virtual

Interpolate points in this graph at x using a TSpline.

  • if spline==0 and option="" a linear interpolation between the two points close to x is computed. If x is outside the graph range, a linear extrapolation is computed.
  • if spline==0 and option="S" a TSpline3 object is created using this graph and the interpolated value from the spline is returned. the internally created spline is deleted on return.
  • if spline is specified, it is used to return the interpolated value.

    If the points are sorted in X a binary search is used (significantly faster) One needs to set the bit TGraph::SetBit(TGraph::kIsSortedX) before calling TGraph::Eval to indicate that the graph is sorted in X.

Definition at line 863 of file TGraph.cxx.

◆ ExecuteEvent()

void TGraph::ExecuteEvent ( Int_t  event,
Int_t  px,
Int_t  py 
)
virtual

Execute action corresponding to one event.

This member function is called when a graph is clicked with the locator

If Left button clicked on one of the line end points, this point follows the cursor until button is released.

if Middle button clicked, the line is moved parallel to itself until the button is released.

Reimplemented from TObject.

Definition at line 966 of file TGraph.cxx.

◆ Expand() [1/2]

void TGraph::Expand ( Int_t  newsize)
virtual

If array sizes <= newsize, expand storage to 2*newsize.

Definition at line 975 of file TGraph.cxx.

◆ Expand() [2/2]

void TGraph::Expand ( Int_t  newsize,
Int_t  step 
)
virtual

If graph capacity is less than newsize points then make array sizes equal to least multiple of step to contain newsize points.

Returns kTRUE if size was altered

Definition at line 986 of file TGraph.cxx.

◆ ExpandAndCopy()

Double_t ** TGraph::ExpandAndCopy ( Int_t  size,
Int_t  iend 
)
protected

if size > fMaxSize allocate new arrays of 2*size points and copy iend first points.

Return pointer to new arrays.

Definition at line 1000 of file TGraph.cxx.

◆ FillZero()

void TGraph::FillZero ( Int_t  begin,
Int_t  end,
Bool_t  from_ctor = kTRUE 
)
protectedvirtual

Set zero values for point arrays in the range [begin, end) Should be redefined in descendant classes.

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 1014 of file TGraph.cxx.

◆ FindObject() [1/2]

TObject * TGraph::FindObject ( const char *  name) const
virtual

Search object named name in the list of functions.

Reimplemented from TObject.

Definition at line 1023 of file TGraph.cxx.

◆ FindObject() [2/2]

TObject * TGraph::FindObject ( const TObject obj) const
virtual

Search object obj in the list of functions.

Reimplemented from TObject.

Definition at line 1032 of file TGraph.cxx.

◆ Fit() [1/2]

TFitResultPtr TGraph::Fit ( const char *  fname,
Option_t option = "",
Option_t goption = "",
Axis_t  xmin = 0,
Axis_t  xmax = 0 
)
virtual

Fit this graph with function with name fname.

interface to TGraph::Fit(TF1 *f1...

fname is the name of an already predefined function created by TF1 or TF2 Predefined functions such as gaus, expo and poln are automatically created by ROOT.

fname can also be a formula, accepted by the linear fitter (linear parts divided by "++" sign), for example "x++sin(x)" for fitting "[0]*x+[1]*sin(x)"

Definition at line 1050 of file TGraph.cxx.

◆ Fit() [2/2]

TFitResultPtr TGraph::Fit ( TF1 f1,
Option_t option = "",
Option_t goption = "",
Axis_t  rxmin = 0,
Axis_t  rxmax = 0 
)
virtual

Fit this graph with function f1.

f1 is an already predefined function created by TF1. Predefined functions such as gaus, expo and poln are automatically created by ROOT.

The list of fit options is given in parameter option.

option description
"W" Set all weights to 1; ignore error bars
"U" Use a User specified fitting algorithm (via SetFCN)
"Q" Quiet mode (minimum printing)
"V" Verbose mode (default is between Q and V)
"E" Perform better Errors estimation using Minos technique
"B" User defined parameter settings are used for predefined functions like "gaus", "expo", "poln", "landau". Use this option when you want to fix one or more parameters for these functions.
"M" More. Improve fit results. It uses the IMPROVE command of TMinuit (see TMinuit::mnimpr). This algorithm attempts to improve the found local minimum by searching for a better one.
"R" Use the Range specified in the function range
"N" Do not store the graphics function, do not draw
"0" Do not plot the result of the fit. By default the fitted function is drawn unless the option "N" above is specified.
"+" Add this new fitted function to the list of fitted functions (by default, any previous function is deleted)
"C" In case of linear fitting, do not calculate the chisquare (saves time)
"F" If fitting a polN, use the minuit fitter
"EX0" When fitting a TGraphErrors or TGraphAsymErrors do not consider errors in the coordinate
"ROB" In case of linear fitting, compute the LTS regression coefficients (robust (resistant) regression), using the default fraction of good points "ROB=0.x" - compute the LTS regression coefficients, using 0.x as a fraction of good points
"S" The result of the fit is returned in the TFitResultPtr (see below Access to the Fit Result)

When the fit is drawn (by default), the parameter goption may be used to specify a list of graphics options. See TGraphPainter for a complete list of these options.

In order to use the Range option, one must first create a function with the expression to be fitted. For example, if your graph has a defined range between -4 and 4 and you want to fit a gaussian only in the interval 1 to 3, you can do:

   TF1 *f1 = new TF1("f1","gaus",1,3);
   graph->Fit("f1","R");

Who is calling this function:

Note that this function is called when calling TGraphErrors::Fit or TGraphAsymmErrors::Fit ot TGraphBentErrors::Fit See the discussion below on error calculation.

Linear fitting:

When the fitting function is linear (contains the "++" sign) or the fitting function is a polynomial, a linear fitter is initialised. To create a linear function, use the following syntax: linear parts separated by "++" sign. Example: to fit the parameters of "[0]*x + [1]*sin(x)", create a TF1 *f1=new TF1("f1", "x++sin(x)", xmin, xmax); For such a TF1 you don't have to set the initial conditions. Going via the linear fitter for functions, linear in parameters, gives a considerable advantage in speed.

Setting initial conditions:

Parameters must be initialized before invoking the Fit function. The setting of the parameter initial values is automatic for the predefined functions : poln, expo, gaus, landau. One can however disable this automatic computation by specifying the option "B". You can specify boundary limits for some or all parameters via

 f1->SetParLimits(p_number, parmin, parmax);

If parmin>=parmax, the parameter is fixed Note that you are not forced to fix the limits for all parameters. For example, if you fit a function with 6 parameters, you can do:

func->SetParameters(0,3.1,1.e-6,0.1,-8,100); func->SetParLimits(4,-10,-4); func->SetParLimits(5, 1,1); With this setup, parameters 0->3 can vary freely. Parameter 4 has boundaries [-10,-4] with initial value -8. Parameter 5 is fixed to 100.

Fit range:

The fit range can be specified in two ways:

  • specify rxmax > rxmin (default is rxmin=rxmax=0)
  • specify the option "R". In this case, the function will be taken instead of the full graph range.

Changing the fitting function:

By default a chi2 fitting function is used for fitting a TGraph. The function is implemented in FitUtil::EvaluateChi2. In case of TGraphErrors an effective chi2 is used (see below TGraphErrors fit) To specify a User defined fitting function, specify option "U" and call the following functions:

TVirtualFitter::Fitter(mygraph)->SetFCN(MyFittingFunction) where MyFittingFunction is of type: extern void MyFittingFunction(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag);

TGraphErrors fit:

In case of a TGraphErrors object, when x errors are present, the error along x, is projected along the y-direction by calculating the function at the points x-exlow and x+exhigh. The chisquare is then computed as the sum of the quantity below at each point:

\[ \frac{(y-f(x))^{2}}{ey^{2}+(\frac{1}{2}(exl+exh)f'(x))^{2}} \]

where x and y are the point coordinates, and f'(x) is the derivative of the function f(x).

In case the function lies below (above) the data point, ey is ey_low (ey_high).

thanks to Andy Haas (haas@.nosp@m.yaho.nosp@m.o.com) for adding the case with TGraphAsymmErrors University of Washington

The approach used to approximate the uncertainty in y because of the errors in x is to make it equal the error in x times the slope of the line. The improvement, compared to the first method (f(x+ exhigh) - f(x-exlow))/2 is of (error of x)**2 order. This approach is called "effective variance method". This improvement has been made in version 4.00/08 by Anna Kreshuk. The implementation is provided in the function FitUtil::EvaluateChi2Effective

NOTE:

  1. By using the "effective variance" method a simple linear regression becomes a non-linear case, which takes several iterations instead of 0 as in the linear case.
  2. The effective variance technique assumes that there is no correlation between the x and y coordinate.
  3. The standard chi2 (least square) method without error in the coordinates (x) can be forced by using option "EX0"
  4. The linear fitter doesn't take into account the errors in x. When fitting a TGraphErrors with a linear functions the errors in x will not be considered. If errors in x are important, go through minuit (use option "F" for polynomial fitting).
  5. When fitting a TGraph (i.e. no errors associated with each point), a correction is applied to the errors on the parameters with the following formula: errorp *= sqrt(chisquare/(ndf-1))

Access to the fit result

The function returns a TFitResultPtr which can hold a pointer to a TFitResult object. By default the TFitResultPtr contains only the status of the fit which is return by an automatic conversion of the TFitResultPtr to an integer. One can write in this case directly:

Int_t fitStatus =  h->Fit(myFunc)

If the option "S" is instead used, TFitResultPtr contains the TFitResult and behaves as a smart pointer to it. For example one can do:

TFitResultPtr r = h->Fit(myFunc,"S");
TMatrixDSym cov = r->GetCovarianceMatrix();  //  to access the covariance matrix
Double_t chi2   = r->Chi2(); // to retrieve the fit chi2
Double_t par0   = r->Value(0); // retrieve the value for the parameter 0
Double_t err0   = r->ParError(0); // retrieve the error for the parameter 0
r->Print("V");     // print full information of fit including covariance matrix
r->Write();        // store the result in a file

The fit parameters, error and chi2 (but not covariance matrix) can be retrieved also from the fitted function. If the histogram is made persistent, the list of associated functions is also persistent. Given a pointer (see above) to an associated function myfunc, one can retrieve the function/fit parameters with calls such as:

Double_t chi2 = myfunc->GetChisquare();
Double_t par0 = myfunc->GetParameter(0); //value of 1st parameter
Double_t err0 = myfunc->GetParError(0);  //error on first parameter

Access to the fit status

The status of the fit can be obtained converting the TFitResultPtr to an integer independently if the fit option "S" is used or not:

 TFitResultPtr r = h->Fit(myFunc,opt);
 Int_t fitStatus = r;

The fitStatus is 0 if the fit is OK (i.e. no error occurred). The value of the fit status code is negative in case of an error not connected with the minimization procedure, for example when a wrong function is used. Otherwise the return value is the one returned from the minimization procedure. When TMinuit (default case) or Minuit2 are used as minimizer the status returned is : fitStatus = migradResult + 10*minosResult + 100*hesseResult + 1000*improveResult. TMinuit will return 0 (for migrad, minos, hesse or improve) in case of success and 4 in case of error (see the documentation of TMinuit::mnexcm). So for example, for an error only in Minos but not in Migrad a fitStatus of 40 will be returned. Minuit2 will return also 0 in case of success and different values in migrad, minos or hesse depending on the error. See in this case the documentation of Minuit2Minimizer::Minimize for the migradResult, Minuit2Minimizer::GetMinosError for the minosResult and Minuit2Minimizer::Hesse for the hesseResult. If other minimizers are used see their specific documentation for the status code returned. For example in the case of Fumili, for the status returned see TFumili::Minimize.

Associated functions:

One or more object (typically a TF1*) can be added to the list of functions (fFunctions) associated with each graph. When TGraph::Fit is invoked, the fitted function is added to this list. Given a graph gr, one can retrieve an associated function with: TF1 *myfunc = gr->GetFunction("myfunc");

If the graph is made persistent, the list of associated functions is also persistent. Given a pointer (see above) to an associated function myfunc, one can retrieve the function/fit parameters with calls such as:

Double_t chi2 = myfunc->GetChisquare();
Double_t par0 = myfunc->GetParameter(0); //value of 1st parameter
Double_t err0 = myfunc->GetParError(0);  //error on first parameter

Fit Statistics

You can change the statistics box to display the fit parameters with the TStyle::SetOptFit(mode) method. This mode has four digits. mode = pcev (default = 0111)

v = 1;  print name/values of parameters
e = 1;  print errors (if e=1, v must be 1)
c = 1;  print Chisquare/Number of degrees of freedom
p = 1;  print Probability

For example: gStyle->SetOptFit(1011); prints the fit probability, parameter names/values, and errors. You can change the position of the statistics box with these lines (where g is a pointer to the TGraph):

Root > TPaveStats *st = (TPaveStats*)g->GetListOfFunctions()->FindObject("stats")
Root > st->SetX1NDC(newx1); //new x start position
Root > st->SetX2NDC(newx2); //new x end position

Definition at line 1294 of file TGraph.cxx.

◆ FitPanel()

void TGraph::FitPanel ( )
virtual

Display a GUI panel with all graph fit options.

See class TFitEditor for example

Definition at line 1309 of file TGraph.cxx.

◆ GetCorrelationFactor()

Double_t TGraph::GetCorrelationFactor ( ) const
virtual

Return graph correlation factor.

Definition at line 1331 of file TGraph.cxx.

◆ GetCovariance()

Double_t TGraph::GetCovariance ( ) const
virtual

Return covariance of vectors x,y.

Definition at line 1343 of file TGraph.cxx.

◆ GetEditable()

Bool_t TGraph::GetEditable ( ) const

Return kTRUE if kNotEditable bit is not set, kFALSE otherwise.

Definition at line 2148 of file TGraph.cxx.

◆ GetErrorX()

Double_t TGraph::GetErrorX ( Int_t  bin) const
virtual

This function is called by GraphFitChisquare.

It always returns a negative value. Real implementation in TGraphErrors

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 1397 of file TGraph.cxx.

◆ GetErrorXhigh()

Double_t TGraph::GetErrorXhigh ( Int_t  bin) const
virtual

This function is called by GraphFitChisquare.

It always returns a negative value. Real implementation in TGraphErrors and TGraphAsymmErrors

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 1416 of file TGraph.cxx.

◆ GetErrorXlow()

Double_t TGraph::GetErrorXlow ( Int_t  bin) const
virtual

This function is called by GraphFitChisquare.

It always returns a negative value. Real implementation in TGraphErrors and TGraphAsymmErrors

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 1426 of file TGraph.cxx.

◆ GetErrorY()

Double_t TGraph::GetErrorY ( Int_t  bin) const
virtual

This function is called by GraphFitChisquare.

It always returns a negative value. Real implementation in TGraphErrors

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 1406 of file TGraph.cxx.

◆ GetErrorYhigh()

Double_t TGraph::GetErrorYhigh ( Int_t  bin) const
virtual

This function is called by GraphFitChisquare.

It always returns a negative value. Real implementation in TGraphErrors and TGraphAsymmErrors

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 1436 of file TGraph.cxx.

◆ GetErrorYlow()

Double_t TGraph::GetErrorYlow ( Int_t  bin) const
virtual

This function is called by GraphFitChisquare.

It always returns a negative value. Real implementation in TGraphErrors and TGraphAsymmErrors

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 1446 of file TGraph.cxx.

◆ GetEX()

virtual Double_t* TGraph::GetEX ( ) const
inlinevirtual

Reimplemented in TGraphErrors.

Definition at line 132 of file TGraph.h.

◆ GetEXhigh()

virtual Double_t* TGraph::GetEXhigh ( ) const
inlinevirtual

Reimplemented in TGraphBentErrors, and TGraphAsymmErrors.

Definition at line 134 of file TGraph.h.

◆ GetEXhighd()

virtual Double_t* TGraph::GetEXhighd ( ) const
inlinevirtual

Reimplemented in TGraphBentErrors.

Definition at line 139 of file TGraph.h.

◆ GetEXlow()

virtual Double_t* TGraph::GetEXlow ( ) const
inlinevirtual

Reimplemented in TGraphBentErrors, and TGraphAsymmErrors.

Definition at line 135 of file TGraph.h.

◆ GetEXlowd()

virtual Double_t* TGraph::GetEXlowd ( ) const
inlinevirtual

Reimplemented in TGraphBentErrors.

Definition at line 138 of file TGraph.h.

◆ GetEY()

virtual Double_t* TGraph::GetEY ( ) const
inlinevirtual

Reimplemented in TGraphErrors.

Definition at line 133 of file TGraph.h.

◆ GetEYhigh()

virtual Double_t* TGraph::GetEYhigh ( ) const
inlinevirtual

Reimplemented in TGraphBentErrors, and TGraphAsymmErrors.

Definition at line 136 of file TGraph.h.

◆ GetEYhighd()

virtual Double_t* TGraph::GetEYhighd ( ) const
inlinevirtual

Reimplemented in TGraphBentErrors.

Definition at line 141 of file TGraph.h.

◆ GetEYlow()

virtual Double_t* TGraph::GetEYlow ( ) const
inlinevirtual

Reimplemented in TGraphBentErrors, and TGraphAsymmErrors.

Definition at line 137 of file TGraph.h.

◆ GetEYlowd()

virtual Double_t* TGraph::GetEYlowd ( ) const
inlinevirtual

Reimplemented in TGraphBentErrors.

Definition at line 140 of file TGraph.h.

◆ GetFunction()

TF1 * TGraph::GetFunction ( const char *  name) const

Return pointer to function with name.

Functions such as TGraph::Fit store the fitted function in the list of functions of this graph.

Definition at line 1457 of file TGraph.cxx.

◆ GetHistogram()

TH1F * TGraph::GetHistogram ( ) const

Returns a pointer to the histogram used to draw the axis Takes into account the two following cases.

  1. option 'A' was specified in TGraph::Draw. Return fHistogram
  2. user had called TPad::DrawFrame. return pointer to hframe histogram

Definition at line 1469 of file TGraph.cxx.

◆ GetListOfFunctions()

TList* TGraph::GetListOfFunctions ( ) const
inline

Definition at line 117 of file TGraph.h.

◆ GetMaximum()

Double_t TGraph::GetMaximum ( ) const
inline

Definition at line 142 of file TGraph.h.

◆ GetMaxSize()

Int_t TGraph::GetMaxSize ( ) const
inline

Definition at line 122 of file TGraph.h.

◆ GetMean()

Double_t TGraph::GetMean ( Int_t  axis = 1) const
virtual

Return mean value of X (axis=1) or Y (axis=2)

Definition at line 1359 of file TGraph.cxx.

◆ GetMinimum()

Double_t TGraph::GetMinimum ( ) const
inline

Definition at line 143 of file TGraph.h.

◆ GetN()

Int_t TGraph::GetN ( ) const
inline

Definition at line 123 of file TGraph.h.

◆ GetPoint()

Int_t TGraph::GetPoint ( Int_t  i,
Double_t x,
Double_t y 
) const
virtual

Get x and y values for point number i.

The function returns -1 in case of an invalid request or the point number otherwise

Definition at line 1580 of file TGraph.cxx.

◆ GetRMS()

Double_t TGraph::GetRMS ( Int_t  axis = 1) const
virtual

Return RMS of X (axis=1) or Y (axis=2)

Definition at line 1374 of file TGraph.cxx.

◆ GetX()

Double_t* TGraph::GetX ( ) const
inline

Definition at line 130 of file TGraph.h.

◆ GetXaxis()

TAxis * TGraph::GetXaxis ( ) const

Get x axis of the graph.

Definition at line 1592 of file TGraph.cxx.

◆ GetY()

Double_t* TGraph::GetY ( ) const
inline

Definition at line 131 of file TGraph.h.

◆ GetYaxis()

TAxis * TGraph::GetYaxis ( ) const

Get y axis of the graph.

Definition at line 1602 of file TGraph.cxx.

◆ InitExpo()

void TGraph::InitExpo ( Double_t  xmin = 0,
Double_t  xmax = 0 
)
virtual

Compute Initial values of parameters for an exponential.

Definition at line 1650 of file TGraph.cxx.

◆ InitGaus()

void TGraph::InitGaus ( Double_t  xmin = 0,
Double_t  xmax = 0 
)
virtual

Compute Initial values of parameters for a gaussian.

Definition at line 1612 of file TGraph.cxx.

◆ InitPolynom()

void TGraph::InitPolynom ( Double_t  xmin = 0,
Double_t  xmax = 0 
)
virtual

Compute Initial values of parameters for a polynom.

Definition at line 1671 of file TGraph.cxx.

◆ InsertPoint()

Int_t TGraph::InsertPoint ( )
virtual

Insert a new point at the mouse position.

Definition at line 1691 of file TGraph.cxx.

◆ InsertPointBefore()

void TGraph::InsertPointBefore ( Int_t  ipoint,
Double_t  x,
Double_t  y 
)
virtual

Insert a new point with coordinates (x,y) before the point number ipoint.

Definition at line 1736 of file TGraph.cxx.

◆ Integral()

Double_t TGraph::Integral ( Int_t  first = 0,
Int_t  last = -1 
) const
virtual

Integrate the TGraph data within a given (index) range.

Note that this function computes the area of the polygon enclosed by the points of the TGraph. The polygon segments, which are defined by the points of the TGraph, do not need to form a closed polygon, since the last polygon segment, which closes the polygon, is taken as the line connecting the last TGraph point with the first one. It is clear that the order of the point is essential in defining the polygon. Also note that the segments should not intersect.

NB:

  • if last=-1 (default) last is set to the last point.
  • if (first <0) the first point (0) is taken.

Method:

There are many ways to calculate the surface of a polygon. It all depends on what kind of data you have to deal with. The most evident solution would be to divide the polygon in triangles and calculate the surface of them. But this can quickly become complicated as you will have to test every segments of every triangles and check if they are intersecting with a current polygon's segment or if it goes outside the polygon. Many calculations that would lead to many problems...

The solution (implemented by R.Brun)

Fortunately for us, there is a simple way to solve this problem, as long as the polygon's segments don't intersect. It takes the x coordinate of the current vertex and multiply it by the y coordinate of the next vertex. Then it subtracts from it the result of the y coordinate of the current vertex multiplied by the x coordinate of the next vertex. Then divide the result by 2 to get the surface/area.

Sources

Definition at line 1790 of file TGraph.cxx.

◆ IsEditable()

virtual Bool_t TGraph::IsEditable ( ) const
inlinevirtual

Definition at line 154 of file TGraph.h.

◆ IsHighlight()

virtual Bool_t TGraph::IsHighlight ( ) const
inlinevirtual

Definition at line 155 of file TGraph.h.

◆ IsInside()

Int_t TGraph::IsInside ( Double_t  x,
Double_t  y 
) const
virtual

Return 1 if the point (x,y) is inside the polygon defined by the graph vertices 0 otherwise.

Algorithm:

The loop is executed with the end-point coordinates of a line segment (X1,Y1)-(X2,Y2) and the Y-coordinate of a horizontal line. The counter inter is incremented if the line (X1,Y1)-(X2,Y2) intersects the horizontal line. In this case XINT is set to the X-coordinate of the intersection point. If inter is an odd number, then the point x,y is within the polygon.

Definition at line 1823 of file TGraph.cxx.

◆ LeastSquareFit()

void TGraph::LeastSquareFit ( Int_t  m,
Double_t a,
Double_t  xmin = 0,
Double_t  xmax = 0 
)
virtual

Least squares polynomial fitting without weights.

Parameters
[in]mnumber of parameters
[in]maarray of parameters
[in]mfirst1st point number to fit (default =0)
[in]mlastlast point number to fit (default=fNpoints-1)

based on CERNLIB routine LSQ: Translated to C++ by Rene Brun

Definition at line 1838 of file TGraph.cxx.

◆ LeastSquareLinearFit()

void TGraph::LeastSquareLinearFit ( Int_t  ndata,
Double_t a0,
Double_t a1,
Int_t ifail,
Double_t  xmin = 0,
Double_t  xmax = 0 
)
virtual

Least square linear fit without weights.

Fit a straight line (a0 + a1*x) to the data in this graph.

Parameters
[in]ndataif ndata<0, fits the logarithm of the graph (used in InitExpo() to set the initial parameter values for a fit with exponential function.
[in]a0constant
[in]a1slope
[in]ifailreturn parameter indicating the status of the fit (ifail=0, fit is OK)
[in]xmin,xmaxfitting range

extracted from CERNLIB LLSQ: Translated to C++ by Rene Brun

Definition at line 1913 of file TGraph.cxx.

◆ Merge()

Int_t TGraph::Merge ( TCollection li)
virtual

Adds all graphs from the collection to this graph.

Returns the total number of poins in the result or -1 in case of an error.

Reimplemented in TGraphAsymmErrors, and TGraphErrors.

Definition at line 2442 of file TGraph.cxx.

◆ operator=()

TGraph & TGraph::operator= ( const TGraph gr)

Equal operator for this graph.

Definition at line 187 of file TGraph.cxx.

◆ Paint()

void TGraph::Paint ( Option_t chopt = "")
virtual

Draw this graph with its current attributes.

Reimplemented from TObject.

Definition at line 1959 of file TGraph.cxx.

◆ PaintGraph()

void TGraph::PaintGraph ( Int_t  npoints,
const Double_t x,
const Double_t y,
Option_t chopt 
)

Draw the (x,y) as a graph.

Definition at line 1968 of file TGraph.cxx.

◆ PaintGrapHist()

void TGraph::PaintGrapHist ( Int_t  npoints,
const Double_t x,
const Double_t y,
Option_t chopt 
)

Draw the (x,y) as a histogram.

Definition at line 1977 of file TGraph.cxx.

◆ PaintStats()

void TGraph::PaintStats ( TF1 fit)
virtual

Draw the stats.

Definition at line 1986 of file TGraph.cxx.

◆ Print()

void TGraph::Print ( Option_t chopt = "") const
virtual

Print graph values.

Reimplemented from TNamed.

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, TGraphErrors, RooHist, RooCurve, and RooEllipse.

Definition at line 1995 of file TGraph.cxx.

◆ RecursiveRemove()

void TGraph::RecursiveRemove ( TObject obj)
virtual

Recursively remove object from the list of functions.

Reimplemented from TObject.

Definition at line 2005 of file TGraph.cxx.

◆ RemovePoint() [1/2]

Int_t TGraph::RemovePoint ( )
virtual

Delete point close to the mouse position.

Definition at line 2016 of file TGraph.cxx.

◆ RemovePoint() [2/2]

Int_t TGraph::RemovePoint ( Int_t  ipoint)
virtual

Delete point number ipoint.

Definition at line 2039 of file TGraph.cxx.

◆ SavePrimitive()

void TGraph::SavePrimitive ( std::ostream &  out,
Option_t option = "" 
)
virtual

Save primitive as a C++ statement(s) on output stream out.

Reimplemented from TObject.

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, TGraphErrors, and TCutG.

Definition at line 2053 of file TGraph.cxx.

◆ Set()

void TGraph::Set ( Int_t  n)
virtual

Set number of points in the graph Existing coordinates are preserved New coordinates above fNpoints are preset to 0.

Definition at line 2133 of file TGraph.cxx.

◆ SetEditable()

void TGraph::SetEditable ( Bool_t  editable = kTRUE)
virtual

if editable=kFALSE, the graph cannot be modified with the mouse by default a TGraph is editable

Definition at line 2157 of file TGraph.cxx.

◆ SetHighlight()

void TGraph::SetHighlight ( Bool_t  set = kTRUE)
virtual

Set highlight (enable/disble) mode for the graph by default highlight mode is disable.

Definition at line 2167 of file TGraph.cxx.

◆ SetHistogram()

virtual void TGraph::SetHistogram ( TH1F h)
inlinevirtual

Definition at line 171 of file TGraph.h.

◆ SetMaximum()

void TGraph::SetMaximum ( Double_t  maximum = -1111)
virtual

Set the maximum of the graph.

Reimplemented in TGraphPolar.

Definition at line 2180 of file TGraph.cxx.

◆ SetMinimum()

void TGraph::SetMinimum ( Double_t  minimum = -1111)
virtual

Set the minimum of the graph.

Reimplemented in TGraphPolar.

Definition at line 2189 of file TGraph.cxx.

◆ SetName()

void TGraph::SetName ( const char *  name = "")
virtual

Set graph name.

Reimplemented from TNamed.

Definition at line 2221 of file TGraph.cxx.

◆ SetNameTitle()

void TGraph::SetNameTitle ( const char *  name = "",
const char *  title = "" 
)
virtual

Set graph name and title.

Reimplemented from TNamed.

Definition at line 2239 of file TGraph.cxx.

◆ SetPoint()

void TGraph::SetPoint ( Int_t  i,
Double_t  x,
Double_t  y 
)
virtual

Set x and y values for point number i.

Definition at line 2198 of file TGraph.cxx.

◆ SetTitle()

void TGraph::SetTitle ( const char *  title = "")
virtual

Set graph title.

Reimplemented from TNamed.

Definition at line 2230 of file TGraph.cxx.

◆ ShrinkAndCopy()

Double_t ** TGraph::ShrinkAndCopy ( Int_t  size,
Int_t  oend 
)
protected

if size*2 <= fMaxSize allocate new arrays of size points, copy points [0,oend).

Return newarray (passed or new instance if it was zero and allocations are needed)

Definition at line 2251 of file TGraph.cxx.

◆ Sort()

void TGraph::Sort ( Bool_t(*)(const TGraph *, Int_t, Int_t greaterfunc = &TGraph::CompareX,
Bool_t  ascending = kTRUE,
Int_t  low = 0,
Int_t  high = -1111 
)
virtual

Sorts the points of this TGraph using in-place quicksort (see e.g.

older glibc). To compare two points the function parameter greaterfunc is used (see TGraph::CompareX for an example of such a method, which is also the default comparison function for Sort). After the sort, greaterfunc(this, i, j) will return kTRUE for all i>j if ascending == kTRUE, and kFALSE otherwise.

The last two parameters are used for the recursive quick sort, stating the range to be sorted

Examples:

// sort points along x axis
graph->Sort();
// sort points along their distance to origin
Bool_t CompareErrors(const TGraph* gr, Int_t i, Int_t j) {
const TGraphErrors* ge=(const TGraphErrors*)gr;
return (ge->GetEY()[i]>ge->GetEY()[j]); }
// sort using the above comparison function, largest errors first
graph->Sort(&CompareErrors, kFALSE);

Definition at line 2284 of file TGraph.cxx.

◆ SwapPoints()

void TGraph::SwapPoints ( Int_t  pos1,
Int_t  pos2 
)
protectedvirtual

Swap points.

Reimplemented in TGraphBentErrors, TGraphAsymmErrors, and TGraphErrors.

Definition at line 2386 of file TGraph.cxx.

◆ SwapValues()

void TGraph::SwapValues ( Double_t arr,
Int_t  pos1,
Int_t  pos2 
)
staticprotected

Swap values.

Definition at line 2395 of file TGraph.cxx.

◆ UseCurrentStyle()

void TGraph::UseCurrentStyle ( )
virtual

Set current style settings in this graph This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.

Reimplemented from TObject.

Definition at line 2407 of file TGraph.cxx.

◆ Zero()

void TGraph::Zero ( Int_t k,
Double_t  AZ,
Double_t  BZ,
Double_t  E2,
Double_t X,
Double_t Y,
Int_t  maxiterations 
)

Find zero of a continuous function.

This function finds a real zero of the continuous real function Y(X) in a given interval (A,B). See accompanying notes for details of the argument list and calling sequence

Definition at line 2474 of file TGraph.cxx.

Member Data Documentation

◆ fFunctions

TList* TGraph::fFunctions
protected

Pointer to list of functions (fits and user)

Definition at line 49 of file TGraph.h.

◆ fHistogram

TH1F* TGraph::fHistogram
protected

Pointer to histogram used for drawing axis.

Definition at line 50 of file TGraph.h.

◆ fMaximum

Double_t TGraph::fMaximum
protected

Maximum value for plotting along y.

Definition at line 52 of file TGraph.h.

◆ fMaxSize

Int_t TGraph::fMaxSize
protected

!Current dimension of arrays fX and fY

Definition at line 45 of file TGraph.h.

◆ fMinimum

Double_t TGraph::fMinimum
protected

Minimum value for plotting along y.

Definition at line 51 of file TGraph.h.

◆ fNpoints

Int_t TGraph::fNpoints
protected

Number of points <= fMaxSize.

Definition at line 46 of file TGraph.h.

◆ fX

Double_t* TGraph::fX
protected

[fNpoints] array of X points

Definition at line 47 of file TGraph.h.

◆ fY

Double_t* TGraph::fY
protected

[fNpoints] array of Y points

Definition at line 48 of file TGraph.h.

Libraries for TGraph:
[legend]

The documentation for this class was generated from the following files: