matplotlib-0.54 Win98 crash

Hi John,
I can confirm that 0.54.1a fixes the crashing problem - thanks!
However, I tested it with a few errorbar plots and I noticed a few things.
You've changed the errorbar bar-ends to use markers, but the scaling is now different and seems no longer to be settable via the capsize parameter.
The autoscaling no longer works either.

If I use the example:


from matplotlib.matlab import *

t = arange(0.1, 4, 0.1)
s = exp(-t)
e = 0.1*randn(len(s))
f = 0.1*randn(len(s))

l1 = errorbar(t, s, e, f)
set(l1, 'color', 'g')

a traceback is generated:
Traceback (most recent call last):
  File "errorbar_demo.pyw", line 10, in ?
    set(l1, 'color', 'g')
  File "C:\APPS\PYTHON23\Lib\site-packages\matplotlib\", line 1275, in set
    func = getattr(o,funcName)
AttributeError: 'NoneType' object has no attribute 'set_color'

I'm pretty sure this worked in 0.53

If you change
l1 = errorbar(t, s, e, f)
l1,l2 = errorbar(t, s, e, f)

you get another traceback:
Traceback (most recent call last):
  File "errorbar_demo.pyw", line 8, in ?
    l1,l2 = errorbar(t, s, e, f)
TypeError: unpack non-sequence

This worked in 0.53

If you remove the set() call, the plot appears, but you'll see the autoscaling is wonky.

I discovered these because I was trying to reproduce the plots on my python page <>
When I try to reproduce the first one, I get a traceback. If I remove the l1,e1 assignment part and the legend call, no traceback occurs. I don't understand why:
The traceback produced is:

Traceback (most recent call last):
  File "", line 17, in ?
    l1,e1=errorbar(m, PrimeVals(t), [NegErrs(t), PosErrs(t)], fmt='r')
TypeError: unpack non-sequence

When I try to reproduce the second plot, the plot window appears.
The scaling shown on my webpage is the autoscaling produced with 0.53 (xaxis=2->4.5, yaxis=5.?->5.32), but the autoscaling in 0.54.1a has the axis ranges of (xaxis=1->5.5, yaxis=4->6.5). Also I have to squint to see the bar-ends :wink: <- (smiley of my left eye squinting)

regards and thanks for sorting out the GTKAgg stuff,

Sign-up for Ads Free at


I was wondering whether anyone else has noticed a performance difference between using plot_date() and plot().
Here is a dummy script:

#!/usr/bin/env python

import time
from matplotlib.dates import EpochConverter
from matplotlib.matlab import *
from matplotlib.ticker import DateFormatter, DayLocator, HourLocator



dates=arange(weekAgo, now, 10) #Say have a point every 10 secs..

if useDates:
   #Date plot


   converter = EpochConverter()

   ax = subplot(111)
   plot_date(dates, vals, converter)


   #What will this do??

   #Regular plot
   plot(dates, vals)

ylabel('Number of points: '+str(len(dates)))

I use python2.2 running on a 3.2 PIV with 2GB or ram and when I use regular plotting, this takes ~1sec. With plot_date() it takes ~8sec.

I really like the flexibility of the way dates are handled but this seems to be too much of a performance hit for me to use (I ofter have data sets of 500 000 points). So my question is whether I am perhaps missing something trivial and not setting things up right. I cannot run any of the date_demo scripts because don't have python2.3 so cannot test how fast they run.

I will need to setup the x-axis labeling as dates, but now it seems it would be faster to just update the xticslabels of a "regular" plot.

Any thoughts?


Peter Groszkowski Gemini Observatory
Tel: +1 808 974-2509 670 N. A'ohoku Place
Fax: +1 808 935-9235 Hilo, Hawai'i 96720, USA