692 if (
gPad->GetLogx()) {
700 if (!opt &&
gPad->GetLogy()) {
782 else distance =
f->DistancetoPrimitive(px,py);
784 gPad->SetSelected(
f);
800 Error(
"DrawPanel",
"need to draw graph first");
805 gROOT->ProcessLine(
TString::Format(
"((TCanvas*)0x%zx)->Selected((TVirtualPad*)0x%zx,(TObject*)0x%zx,1)",
831 static Int_t px1,px2,py1,py2;
834 static std::vector<Int_t>
x,
y;
841 if (!
gPad->IsEditable())
return;
852 px1 =
gPad->XtoAbsPixel(
gPad->GetX1());
853 py1 =
gPad->YtoAbsPixel(
gPad->GetY1());
854 px2 =
gPad->XtoAbsPixel(
gPad->GetX2());
855 py2 =
gPad->YtoAbsPixel(
gPad->GetY2());
859 if (!
x.empty() || !
y.empty())
break;
992 dxr =
dx/(1 -
gPad->GetLeftMargin() -
gPad->GetRightMargin());
993 dyr =
dy/(1 -
gPad->GetBottomMargin() -
gPad->GetTopMargin());
1023 if (
theGraph->InheritsFrom(
"TCutG")) {
1043 if (
gROOT->IsEscaped()) {
1057 dxr =
dx/(1 -
gPad->GetLeftMargin() -
gPad->GetRightMargin());
1058 dyr =
dy/(1 -
gPad->GetBottomMargin() -
gPad->GetTopMargin());
1078 if (
theGraph->InheritsFrom(
"TCutG")) {
1124 if (
theGraph->IsHighlight())
return;
1182 if (
gPad->GetLogx()) {
1186 if (
gPad->GetLogy()) {
1286 if (
theGraph->InheritsFrom(
"TGraphPolar"))
1302 Error(
"PaintGraph",
"illegal number of points (%d)",
npoints);
1405 if (!
theGraph->GetHistogram())
return;
1410 theGraph->GetHistogram()->SetDirectory(
nullptr);
1414 if (
gPad->GetLogy()) {
1460 for (i=1;i<=
nloop;i++) {
1510 for (i=1;i<=
nloop;i++) {
1535 for (i=1;i<=
nloop;i++) {
1598 if (
gPad->GetFrameFillColor()==1) {
1626 xlow =
x[i-1] -
dbar;
1634 else ylow =
gPad->GetUymin();
1650 ylow =
y[i-1] -
dbar;
1706 const char *
where =
"PaintGrapHist";
1720 Int_t first, last, nbins;
1762 nbins = last - first + 1;
1791 if (
gPad->GetGridx()) {
1795 if (
gPad->GetLogx()) {
1822 if (
gPad->GetGridy()) {
1826 if (
gPad->GetLogy()) {
1882 for (
j=first;
j<=last;
j++) {
1891 if (
j != last)
Error(
where,
"X must be in increasing order");
1892 else Error(
where,
"X must have N+1 values with option N");
1925 for (
j=first;
j<=last;
j++) {
1932 if (
j != last)
Error(
where,
"Y must be in increasing order");
1933 else Error(
where,
"Y must have N+1 values with option N");
1968 for (i=first; i<=last;i++) {
1973 xi1 =
x[i]; xi =
x[i-1];
1975 if (i != last)
Error(
where,
"X must be in increasing order");
1976 else Error(
where,
"X must have N+1 values with option N");
2035 for (i=first; i<=last;i++) {
2042 if (i != last)
Error(
where,
"Y must be in increasing order");
2043 else Error(
where,
"Y must have N+1 values with option N");
2074 for (i=first; i<=last;i++) {
2079 xi1 =
x[i]; xi =
x[i-1];
2081 if (i != last)
Error(
where,
"X must be in increasing order");
2082 else Error(
where,
"X must have N+1 values with option N");
2118 for (i=first; i<=last;i++) {
2125 if (i != last)
Error(
where,
"Y must be in increasing order");
2126 else Error(
where,
"Y must have N+1 values with option N");
2168 for (i=first; i<=last;i++) {
2173 xi1 =
x[i]; xi =
x[i-1];
2175 if (i != last)
Error(
where,
"X must be in increasing order");
2176 else Error(
where,
"X must have N+1 values with option N");
2221 for (i=first; i<=last;i++) {
2228 if (i != last)
Error(
where,
"Y must be in increasing order");
2229 else Error(
where,
"Y must have N+1 values with option N");
2268 offset = delta*baroffset;
dbar = delta*barwidth;
2272 dbar = (
x[1]-
x[0])*barwidth;
2275 dbar = (
y[1]-
y[0])*barwidth;
2285 else ylow =
gPad->GetUymin();
2287 for (i=first; i<=last;i++) {
2301 xi1 =
x[i]; xi =
x[i-1];
2303 Error(
where,
"X must be in increasing order");
2307 dbar = (
x[i+1]-
x[i])*barwidth;
2317 else xlow =
gPad->GetUxmin();
2318 for (i=first; i<=last;i++) {
2328 ylow = ylow + delta;
2334 Error(
where,
"Y must be in increasing order");
2338 dbar = (
y[i+1]-
y[i])*barwidth;
2357 for (i=first; i<=last;i++) {
2359 else xm =
x[i-1] + 0.5*(
x[i]-
x[i-1]);
2386 for (i=first; i<=last;i++) {
2388 else ym =
y[i-1] + 0.5*(
y[i]-
y[i-1]);
2438 static Float_t cxx[30] = {1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.6,1.0,0.5,0.5,1.0,0.5,0.6,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
2439 static Float_t cyy[30] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
2488 Error(
"PaintGraphAsymmErrors",
"too many points, out of memory");
2514 if (mark >= 20 && mark <= 49) {
2530 Double_t x,
y,
exl,
exh,
eyl,
eyh,
xl1,
xl2,
xr1,
xr2,
yup1,
yup2,
ylow1,
ylow2;
2538 if (
x >
gPad->GetUxmax())
x =
gPad->GetUxmax();
2540 if (
y >
gPad->GetUymax())
y =
gPad->GetUymax();
2543 if (
x >
gPad->GetUxmax())
continue;
2545 if (
y >
gPad->GetUymax())
continue;
2618 if (
exl != 0. ||
exh != 0.) {
2651 if (
eyl != 0. ||
eyh != 0.) {
2694 gPad->SetLogx(logx);
2695 gPad->SetLogy(logy);
2720 std::vector<TString> options(
NYErrors + 1);
2736 options[filled] =
tsOpt.Copy();
2743 std::vector<Double_t>
xline;
2750 static Float_t cxx[30] = {1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.6,1.0,0.5,0.5,1.0,0.5,0.6,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
2751 static Float_t cyy[30] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
2770 std::vector<Bool_t> DrawErrors(
NYErrors);
2786 std::vector<Double_t> Scale(
NYErrors);
2791 if (options[
j + 1].Contains(
"s=")) {
2797 DrawErrors[
j] = !options[
j + 1].Contains(
"x");
2803 if (options[
j + 1].Contains(
"|>"))
2805 else if (options[
j + 1].Contains(
">"))
2810 Option5[
j] = options[
j + 1].Contains(
"5");
2811 Option4[
j] = options[
j + 1].Contains(
"4");
2815 Option0[
j] = options[
j + 1].Contains(
"0");
2825 options[0].ReplaceAll(
"x0",
"");
2826 options[0].ReplaceAll(
"y0",
"");
2834 if (options[0].Contains(
"|>"))
2836 else if (options[0].Contains(
">"))
2840 if (options[0].Contains(
"s=")) {
2842 options[0].ReplaceAll(options[0](
ScaleRegExp),
"");
2850 Bool_t DrawAxis = options[0].Contains(
"a");
2871 if (
xline.empty()) {
2872 Error(
"PaintGraphMultiErrors",
"too many points, out of memory");
2885 Error(
"PaintGraphMultiErrors",
"too many points, out of memory");
2891 tg->TAttLine::Modify();
2894 arrow.SetLineWidth(
tg->GetLineWidth());
2895 arrow.SetLineColor(
tg->GetLineColor());
2896 arrow.SetFillColor(
tg->GetFillColor());
2900 box.SetLineWidth(
tg->GetLineWidth());
2901 box.SetLineColor(
tg->GetLineColor());
2902 box.SetFillColor(
tg->GetFillColor());
2903 box.SetFillStyle(
tg->GetFillStyle());
2911 if (mark >= 20 && mark <= 49) {
2912 cx = cxx[mark - 20];
2913 cy =
cyy[mark - 20];
2941 x =
gPad->GetUxmin();
2942 if (
x >
gPad->GetUxmax())
2943 x =
gPad->GetUxmax();
2945 y =
gPad->GetUymin();
2946 if (
y >
gPad->GetUymax())
2947 y =
gPad->GetUymax();
2964 box.SetLineWidth(
tg->GetLineWidth(
j));
2965 box.SetLineColor(
tg->GetLineColor(
j));
2966 box.SetFillColor(
tg->GetFillColor(
j));
2967 box.SetFillStyle(
tg->GetFillStyle(
j));
3008 tg->GetAttLine(
j)->Modify();
3010 arrow.SetLineWidth(
tg->GetLineWidth(
j));
3011 arrow.SetLineColor(
tg->GetLineColor(
j));
3012 arrow.SetFillColor(
tg->GetFillColor(
j));
3072 tg->TAttLine::Modify();
3074 arrow.SetLineWidth(
tg->GetLineWidth());
3075 arrow.SetLineColor(
tg->GetLineColor());
3076 arrow.SetFillColor(
tg->GetFillColor());
3155 gPad->SetLogx(logx);
3156 gPad->SetLogy(logy);
3173 static Float_t cxx[30] = {1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.6,1.0,0.5,0.5,1.0,0.5,0.6,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
3174 static Float_t cyy[30] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
3227 Error(
"PaintGraphBentErrors",
"too many points, out of memory");
3253 if (mark >= 20 && mark <= 49) {
3269 Double_t x,
y,
exl,
exh,
eyl,
eyh,
xl1,
xl2,
xr1,
xr2,
yup1,
yup2,
ylow1,
ylow2;
3282 if (
x >
gPad->GetUxmax())
x =
gPad->GetUxmax();
3284 if (
y >
gPad->GetUymax())
y =
gPad->GetUymax();
3287 if (
x >
gPad->GetUxmax())
continue;
3289 if (
y >
gPad->GetUymax())
continue;
3377 if (
exl != 0. ||
exh != 0.) {
3410 if (
eyl != 0. ||
eyh != 0.) {
3454 gPad->SetLogx(logx);
3455 gPad->SetLogy(logy);
3472 static Float_t cxx[30] = {1.0,1.0,0.5,0.5,1.0,1.0,0.5,0.6,1.0,0.5,0.5,1.0,0.5,0.6,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
3473 static Float_t cyy[30] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.5,0.5,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.5,0.5,0.5,1.0};
3520 Error(
"PaintGraphErrors",
"too many points, out of memory");
3547 if (mark >= 20 && mark <= 49) {
3563 Double_t x,
y,
ex,
ey,
xl1,
xl2,
xr1,
xr2,
yup1,
yup2,
ylow1,
ylow2;
3571 if (
x >
gPad->GetUxmax())
x =
gPad->GetUxmax();
3573 if (
y >
gPad->GetUymax())
y =
gPad->GetUymax();
3576 if (
x >
gPad->GetUxmax())
continue;
3578 if (
y >
gPad->GetUymax())
continue;
3718 gPad->SetLogx(logx);
3719 gPad->SetLogy(logy);
3861 if (!(
gPad->GetLogx()) && !(
gPad->GetLogy())) {
3862 Double_t a,
b,
c=1,
x1,
x2,
y1,
y2,
discr,
norm1,
norm2,
xts,
yts;
3952 TIter next(
gPad->GetListOfPrimitives());
3953 while (
auto obj = next()) {
3957 if (
strcmp(title->
GetName(),
"title")) {title =
nullptr;
continue;}
3961 if (title)
delete title;
3967 if (
ht <= 0)
ht = 0.05;
4006 ptitle->SetName(
"title");
4035 Error(
"TGraphQQ::Paint",
"2nd dataset or theoretical function not specified");
4040 theGraphQQ->GetXaxis()->SetTitle(
"theoretical quantiles");
4041 theGraphQQ->GetYaxis()->SetTitle(
"data quantiles");
4058 line3.SetLineStyle(2);
4104 theHist->GetXaxis()->SetTickLength(0.);
4105 theHist->GetXaxis()->SetLabelOffset(999.);
4106 theHist->GetXaxis()->SetAxisColor(
gPad->GetFrameFillColor());
4109 theHist->GetYaxis()->SetTickLength(0.);
4110 theHist->GetYaxis()->SetLabelOffset(999.);
4111 theHist->GetYaxis()->SetAxisColor(
gPad->GetFrameFillColor());
4176 theHist->GetXaxis()->SetTickLength(0.);
4177 theHist->GetXaxis()->SetLabelOffset(999.);
4180 if (
gPad->GetGridx()) {
4181 if (
gPad->GetLogy()) {
4193 if (
gPad->GetLogx()) {
4224 if (
gPad->GetLogx()) {
4228 for (i=0; i<
N; i++)
rX[i] =
dX-
X[i];
4248 if (
gPad->GetGridy()) {
4249 if (
gPad->GetLogx()) {
4261 if (
gPad->GetLogy()) {
4291 if (
gPad->GetLogy()) {
4295 for (i=0; i<
N; i++)
rY[i] =
dY-Y[i];
4356 for (
int i=0; i<
n; i++) {
4374 if (
theX[0] == 0.) {
4384 if (
theY[0] == 0.) {
4450 palette->SetLabelColor(
h->GetLabelColor());
4451 palette->SetLabelFont(
h->GetLabelFont());
4452 palette->SetLabelOffset(
h->GetLabelOffset());
4453 palette->SetLabelSize(
h->GetLabelSize());
4454 palette->SetTitleOffset(
h->GetTitleOffset());
4455 palette->SetTitleSize(
h->GetTitleSize());
4456 palette->SetNdivisions(
h->GetNdivisions());
4464 int logx =
gPad->GetLogx();
4465 int logy =
gPad->GetLogy();
4466 int logz =
gPad->GetLogz();
4475 for (
int i=0; i<
n; i++) {
4504 gPad->PaintPolyMarker(1,&
x,&
y);
4529 auto obj =
lnk->GetObject();
4534 obj->Paint(
lnk->GetOption());
4554 std::vector<Double_t>
xf(2*
n);
4555 std::vector<Double_t>
yf(2*
n);
4556 std::vector<Double_t>
xt(
n);
4557 std::vector<Double_t>
yt(
n);
4558 Double_t x1,
x2,
y1,
y2,
x3,
y3,
xm,
ym,
a,
a1,
a2,
a3;
4590 for (i=1; i<
n; i++) {
4591 if (
x[i]==
x[i-1] &&
y[i]==
y[i-1])
continue;
4594 if (
xf[i]==
xf[i-1])
xf[i] += 0.000001;
4628 for (i=1; i<
nf; i++) {
4698 for (i=
nf2; i>0; i--) {
4699 for (
j=i-1;
j>0;
j--) {
4700 if (
xt[i-1]==
xt[i] ||
xt[
j-1]==
xt[
j])
continue;
4734 for (i=0; i<
nf+1; i++) {
4740 gPad->PaintFillArea(
nf+1,
xf.data(),
yf.data());
4755 while (
auto obj = next()) {
4765 if (!
dofit) fit =
nullptr;
4776 else nlinesf += fit->GetNpar();
4793 stats->SetOptStat(0);
4802 stats->SetName(
"stats");
4805 stats->SetTextAlign(12);
4823 for (
Int_t ipar=0;ipar<fit->GetNpar();ipar++) {
4829 ,fit->GetParError(ipar));
4898 if (
qlx.empty() ||
qly.empty()) {
4899 Error(
"Smooth",
"not enough space in memory");
4939 if ((
x[i]-
x[i-1])*(
x[i-1]-
x[i-2]) < 0)
six++;
4940 if ((
y[i]-
y[i-1])*(
y[i-1]-
y[i-2]) < 0)
siy++;
4986 if (
x[0] ==
x[1] &&
y[0] ==
y[1])
goto L40;
5013 if (
x[k-1] ==
x[k-2] &&
y[k-1] ==
y[k-2])
goto L50;
5035 if (
x[k-1] ==
x[k] &&
y[k-1] ==
y[k])
goto L80;
5058 dx1 =
x[k-1] -
x[km-1];
5059 dy1 =
y[k-1] -
y[km-1];
5105 if (k <= 1)
goto L120;
5200 z = z*z/((
a*
a+
b*
b)*(delta*delta));
5201 z = (z+2.642937)*z/((.3715652*z+3.063444)*z+.2441889)-
cc;
5206 if (z > err)
goto L240;
5211 if (
iw+2 == 0)
goto L190;
5233 Error(
"Smooth",
"Attempt to plot outside plot limits");
5311 if (finished > 0)
goto L390;
5312 if (finished < 0) { finished = 0;
goto L110;}
5313 if (s > 0)
goto L180;
const Int_t kMaxPixel
Max value for an int.
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t wmin
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void xpos
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void ypos
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t wmax
Option_t Option_t TPoint TPoint const char y1
static Int_t gHighlightPoint
static TGraph * gHighlightGraph
static std::unique_ptr< TMarker > gHighlightMarker
R__EXTERN TStyle * gStyle
Draw all kinds of Arrows.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual Width_t GetLineWidth() const
Return the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
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.
static Style_t GetMarkerStyleBase(Style_t style)
Internal helper function that returns the corresponding marker style with line width 1 for the given ...
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
virtual void PaintAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, Double_t &wmin, Double_t &wmax, Int_t &ndiv, Option_t *chopt="", Double_t gridlength=0, Bool_t drawGridOnly=kFALSE)
Control function to draw an axis.
void SetLabelOffset(Float_t labeloffset)
void SetTickSize(Float_t ticksize)
void SetLabelSize(Float_t labelsize)
TGraph with asymmetric error bars and multiple y error dimensions.
void PaintGraphPolar(TGraph *theGraph, Option_t *option)
Paint this TGraphPolar with its current attributes.
void PaintGraph(TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) override
Control function to draw a graph.
void PaintGraphErrors(TGraph *theGraph, Option_t *option)
Paint this TGraphErrors with its current attributes.
void PaintGraphAsymmErrors(TGraph *theGraph, Option_t *option)
Paint this TGraphAsymmErrors with its current attributes.
void PaintGraphMultiErrors(TGraph *theGraph, Option_t *option)
Paint this TGraphMultiErrors with its current attributes.
virtual void PaintHighlightPoint(TGraph *theGraph, Option_t *option)
Paint highlight point as TMarker object (open circle)
void PaintGraphReverse(TGraph *theGraph, Option_t *option)
Paint theGraph reverting values along X and/or Y axis. a new graph is created.
void PaintGrapHist(TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) override
This is a service method used by THistPainter to paint 1D histograms.
static Int_t fgMaxPointsPerLine
Number of points per chunks' line when drawing a graph.
void PaintStats(TGraph *theGraph, TF1 *fit) override
Paint the statistics box with the fit info.
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.
void DrawPanelHelper(TGraph *theGraph) override
Display a panel with all histogram drawing options.
char * GetObjectInfoHelper(TGraph *theGraph, Int_t px, Int_t py) const override
void ExecuteEventHelper(TGraph *theGraph, Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
virtual void HighlightPoint(TGraph *theGraph, Int_t hpoint, Int_t distance)
Check on highlight point.
void ComputeLogs(Int_t npoints, Int_t opt)
Compute the logarithm of variables gxwork and gywork according to the value of Options and put the re...
std::vector< Double_t > gxworkl
Int_t DistancetoPrimitiveHelper(TGraph *theGraph, Int_t px, Int_t py) override
Compute distance from point px,py to a graph.
std::vector< Double_t > gxwork
std::vector< Double_t > gywork
void PaintScatter(TScatter *theScatter, Option_t *option) override
Paint a scatter plot.
void Smooth(TGraph *theGraph, Int_t npoints, Double_t *x, Double_t *y, Int_t drawtype)
Smooth a curve given by N points.
std::vector< Double_t > gyworkl
Internal buffers for coordinates. Used for graphs painting.
void SetHighlight(TGraph *theGraph) override
Set highlight (enable/disable) mode for theGraph.
virtual Int_t GetHighlightPoint(TGraph *theGraph) const
Return the highlighted point for theGraph.
void PaintGraphSimple(TGraph *theGraph, Option_t *option)
Paint a simple graph, without errors bars.
void PaintGraphQQ(TGraph *theGraph, Option_t *option)
Paint this graphQQ. No options for the time being.
~TGraphPainter() override
Destructor.
static void SetMaxPointsPerLine(Int_t maxp=50)
Static function to set fgMaxPointsPerLine for graph painting.
void PaintGraphBentErrors(TGraph *theGraph, Option_t *option)
Paint this TGraphBentErrors with its current attributes.
TGraphPainter()
Default constructor.
void PaintHelper(TGraph *theGraph, Option_t *option) override
Paint a any kind of TGraph.
This class allows to draw quantile-quantile plots.
A TGraph is an object made of two arrays X and Y with npoints each.
@ kClipFrame
Clip to the frame boundary.
@ kNoStats
Don't draw stats box.
1-D histogram with a float per channel (see TH1 documentation)
@ kNoTitle
Don't draw the histogram title.
@ kNoStats
Don't draw stats box.
2-D histogram with a float per channel (see TH1 documentation)
To draw Mathematical Formula.
Use the TLine constructor to create a simple line.
virtual void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Draw this line with new coordinates.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual const char * GetTitle() const
Returns title of object.
@ kCannotPick
if object in a pad cannot be picked
@ kCanDelete
if object in a list can be deleted
@ kMustCleanup
if object destructor must call RecursiveRemove()
The palette painting class.
The histogram statistics painter class.
A Pave (see TPave) with text, lines or/and boxes inside.
virtual TText * GetLine(Int_t number) const
Get Pointer to line number in this pavetext.
const char * GetName() const override
Returns name of object.
Double_t GetX1NDC() const
virtual void SetX2NDC(Double_t x2)
Regular expression class.
A TScatter is able to draw four variables scatter plot on a single plot.
void ToLower()
Change string to lower-case.
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Compare a string to char *cs2.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
void ToUpper()
Change string to upper case.
TString & Append(const char *cs)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Color_t GetLabelColor(Option_t *axis="X") const
Return the label color number in the axis.
Color_t GetStatTextColor() const
Float_t GetTitleX() const
Int_t GetOptTitle() const
Int_t GetNdivisions(Option_t *axis="X") const
Return number of divisions.
Float_t GetStatFontSize() const
Float_t GetBarOffset() const
Float_t GetLabelSize(Option_t *axis="X") const
Return label size.
Float_t GetTickLength(Option_t *axis="X") const
Return tick length.
Style_t GetLabelFont(Option_t *axis="X") const
Return label font.
Float_t GetTitleY() const
Style_t GetTitleFont(Option_t *axis="X") const
Return title font.
Color_t GetTitleFillColor() const
Style_t GetTitleStyle() const
Float_t GetLabelOffset(Option_t *axis="X") const
Return label offset.
Color_t GetStatColor() const
Float_t GetBarWidth() const
void SetDrawBorder(Int_t drawborder=1)
Width_t GetTitleBorderSize() const
Int_t GetColorPalette(Int_t i) const
Return color number i in current palette.
Float_t GetEndErrorSize() const
Int_t GetDrawBorder() const
Width_t GetStatBorderSize() const
Color_t GetTitleTextColor() const
Float_t GetTitleH() const
Style_t GetStatStyle() const
const char * GetFitFormat() const
const char * GetStatFormat() const
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
Style_t GetStatFont() const
Float_t GetTitleFontSize() const
Int_t GetTitleAlign() const
Color_t GetAxisColor(Option_t *axis="X") const
Return the axis color number in the axis.
Float_t GetTitleW() const
Base class for several text objects.
Abstract base class used by ROOT graphics editor.
static TVirtualPadEditor * GetPadEditor(Bool_t load=kTRUE)
Returns the pad editor dialog. Static method.
small helper class to store/restore gPad context in TPad methods
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Double_t Prob(Double_t chi2, Int_t ndf)
Computation of the probability for a certain Chi-squared (chi2) and number of degrees of freedom (ndf...
Bool_t IsInside(T xp, T yp, Int_t np, T *x, T *y)
Function which returns kTRUE if point xp,yp lies inside the polygon defined by the np points in array...
Double_t ATan(Double_t)
Returns the principal value of the arc tangent of x, expressed in radians.
constexpr Double_t PiOver2()
Double_t Sqrt(Double_t x)
Returns the square root of x.
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Returns x raised to the power y.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
Double_t Log10(Double_t x)
Returns the common (base-10) logarithm of x.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.