In some cases matplotlib shows plot with errorbars errorneously when using logarithmic scale.
Suppose these data (within pylab for example):
s=[19.0, 20.0, 21.0, 22.0, 24.0]
v=[36.5, 66.814250000000001, 130.17750000000001, 498.57466666666664, 19.41]
verr=[0.28999999999999998, 80.075044597909169, 71.322124839818571, 650.11015891565125, 0.02]
errorbar(s,v,yerr=verr)
and I get a normal result but when I switch to logarithmic scale:
yscale('log')
I get a plot in which some errorbars are not visible, although you can still see some of the error bar caps. (See below.) Why is this happening, and how can I fix it?

The problem is that for some points
v-verris becoming negative, values <=0 cannot be shown on a logarithmic axis (log(x),x<=0is undefined) To get around this you can use asymmetric errors and force the resulting values to be above zero for the offending points.At any point for which errors are bigger than value
verr>=vwe assignverr=.999vin this case the error bar will go close to zero.Here is the script
Here is the result