Hi All, I am fairly new to matplotlib, and I am impressed

> with its capabilities.

> I have trouble plotting loglog plots with errorbars. I

> have the following, program, a slightly modified version

> of one given earlier by JDH on 9-28-2004 in this mailing

> list:

This is definitely a gotcha that matplotlib needs to be smarted about

handling. The log zero error is occurring when the transformation is

made on the axes limits and not on the data. The autoscaler picks the

best min/max for the data coordinates, and will round down or up to

facilitate nice integer ticking. When you plot with linear coords,

the autoscaler makes it's pick according to linear scaling, and then

when you change scales the old scaling is in effect and the log

transform fails when converting the viewport.

Solution: rescale the axes after changing coords,

either manually

ax.set_yscale("log")

ax.set_xscale("log")

axis([0.5*min(x), 2*max(x), 0.5*min(y-err), 2*max(y+err)])

or use the autoscaler

ax.set_yscale("log")

ax.set_xscale("log")

ax.autoscale_view()

or set your log coords *before* calling plot

ax = gca()

ax.set_yscale("log")

ax.set_xscale("log")

errorbar(x,y,err,fmt='o')

show()

and then the errorbar command will pick a "locator" to handle ticking

and viewport scaling appropriately from the outset. This is the

approach taken in http://matplotlib.sf.net/examples/log_bar.py .

Until I get this fixed to work automagically, I'll make it a FAQ.

JDH