Hi,
I have a TGraphAsymmErrors and I only want to draw the Y error bars, I was hoping this would be something simple in the draw command like:
gr->Draw(“APEY”);
But this still draws both X and Y errors.
Can you help?
Thanks, Claire
Hi,
I have a TGraphAsymmErrors and I only want to draw the Y error bars, I was hoping this would be something simple in the draw command like:
gr->Draw(“APEY”);
But this still draws both X and Y errors.
Can you help?
Thanks, Claire
Define the X errors equal to zero.
This is what I would have done had I been creating the graph using arrays myself. However, I get the graph from a the bayes divide of 2 histograms. To set the X errors to 0.0 I have to access the information in the graph, reset the errors and re plot (I imagine).
Surely there is/should be an option to draw either or both error bars?
Claire
There is no option doing that see:
root.cern.ch/root/html/TGraphAsy … rors:Paint
It was assumed that if one uses a TGraphAsymmErrors object it means he wants really to define 4 differents errors and therefore wants to plot them.
Ok, thanks.
I realise it’s rare that one would want to do this but if it’s easy to code it as an option in the draw method I think it would be useful.
Claire
That’s really simple to do if you need it. That is a 4 lines little procedure like in the following example:
void asymsetEXto0()
{
double x[] = {0, 1, 2, 3, 4};
double y[] = {0, 2, 4, 1, 3};
double exl[] = {0.1, 0.2, 0.3, 0.4, 0.5};
double exh[] = {0.5, 0.4, 0.3, 0.2, 0.1};
double eyl[] = {1, 0.5, 1, 0.5, 1};
double eyh[] = {0.5, 1, 0.5, 1, 0.5};
TCanvas* canvas = new TCanvas("test", "");
TGraphAsymmErrors* gae = new TGraphAsymmErrors(5, x, y, exl, exh, eyl, eyh);
gae->SetFillColor(2);
gae->SetFillStyle(3001);
SetEx(gae,0.);
gae->Draw("a2");
gae->Draw("p");
}
void SetEx(TGraphAsymmErrors* gae, Double_t Ex)
{
Int_t np = gae->GetN();
for (Int_t i=0; i<np; i++) {
gae->SetPointEXhigh(i,Ex);
gae->SetPointEXlow(i,Ex);
}
}