Plotting Y error bars only on a TGraphErrors


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:


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?


There is no option doing that see: … 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.


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);


void SetEx(TGraphAsymmErrors* gae, Double_t Ex)
   Int_t np = gae->GetN();
   for (Int_t i=0; i<np; i++) {