Hi John,

I've implemented xerrorbars and xyerrorbars commands.

I did this by adding two extra functions to the matplot.py rev 1.25

Your code makes it trivial.

As matlab seems not to have x or xy-errorbars, I took my inspiration from

Gnuplot when deciding whether to implement the different versions as

separate commands or as different formats of parameters to errorbars

command. However, since I haven't discussed this with you and just went

ahead and did it, I'll just provide the diffs here (and email you the

matplot.py file offlist to save you patching it).

Also, the xyerrorbars function just naively wraps the errorbars and

xerrorbars functions. This means that the plot symbol is rendered twice for

each point which is probably not ideal. If you see this as a problem, I can

redo it - let me know.

On the same topic, I see you just changed the bar end size ratio from 0.005

to 0.001.

The bar ends are now quite small and I don't think 0.005 was excessive, so

I'd be inclined to revert it back although I guess you had a reason.

Gnuplot makes the bar end size a settable parameter which would be a better

solution IMHO.

regards,

Gary

---8<---Cut here---8<---

185a186,187

xerrorbar - make an errorbar graph (errors along x-axis)

xyerrorbar - make an errorbar graph (errors along both axes )

195c197

< 'figure', 'gca', 'gcf', 'close' ]

## ···

---

'figure', 'gca', 'gcf', 'close', 'xerrorbar', 'xyerrorbar' ]

372c374,407

< def errorbar(x, y, e, u=None, fmt='b-'):

---

def xyerrorbar(x, y, e, f, u=None, v=None, fmt='b-'):

"""

Plot x versus y with x-error bars in e and y-error bars in f.

If u is not None, then u gives the upper x-error bars and e gives the

lower

x-error bars.

Otherwise the error bars are symmetric about y and given in the array

e.

If v is not None, then v gives the upper y-error bars and f gives the

lower

y-error bars.

Otherwise the error bars are symmetric about x and given in the array

f.

fmt is the plot format symbol for the x,y point

Return value is a length 2 tuple. The first element is a list of

y symbol lines. The second element is a list of error bar lines."""

errorbar(x, y, e, u, fmt)

xerrorbar(x, y, f, v, fmt)def xerrorbar(x, y, e, u=None, fmt='b-'):

"""

Plot x versus y with error bars in e. if u is not None, then u

gives the left error bars and e gives the right error bars.

Otherwise the error bars are symmetric about x and given in the

array e.fmt is the plot format symbol for y

Return value is a length 2 tuple. The first element is a list of

y symbol lines. The second element is a list of error bar lines.

373a409,432

l0 = plot(x,y,fmt)

e = asarray(e)

if u is None: u = e

right = x+u

left = x-e

height = (max(y)-min(y))*0.001

a = gca()

try:

l1 = a.hlines(y, x, left)

l2 = a.hlines(y, x, right)

l3 = a.vlines(right, y-height, y+height)

l4 = a.vlines(left, y-height, y+height)

except ValueError, msg:

msg = raise_msg_to_str(msg)

error_msg(msg)

raise RuntimeError, msgl1.extend(l2)

l3.extend(l4)

l1.extend(l3)

draw_if_interactive()

return (l0, l1)

374a434,435

def errorbar(x, y, e, u=None, fmt='b-'):

"""