Animations with matplotlib?
John Hunter
jdhunter at ace.bsd.uchicago.edu
Wed Nov 26 07:48:31 EST 2003
>>>>> "Pekko" == Pekko Piirola <pekko.piirola at helsinki.fi> writes:
Pekko> I'm trying to make an animation with matplotlib. The
Pekko> problem: whenever I try to rescale or move the plot with
Pekko> the buttons of plotting window, the animation stops. My
Pekko> system is Debian Woody and python-2.3 with matplotlib-0.32.
Pekko> I'm a total newbie with matplotlib (I installed it
Pekko> yesterday), so what am I doing wrong? An example code
Pekko> below:
Cute code, looks like the beginnings of a digital oscilloscope....
You have discovered a bug. The Lines2D class goes to great pains to
not plot data outside the view limits and caches a 'clipped' version
of the data set. This cache should have been cleared by the set_data
method. Since set_data is rarely used directly, this bug hasn't been
reported before. It's an easy fix.
In the matplotlib.lines.py module, go to the Line2D.set_data method
(line 74 in the 0.32 release) and replace it with:
def set_data(self, x, y):
try: del self._xc, self._yc
except AttributeError: pass
self._x = asarray(x, Float)
self._y = asarray(y, Float)
if len(self._y)==1 and len(self._x)>1:
self._y = self._y*ones(self._x.shape, Float)
self._xsorted = self._is_sorted(self._x)
The important change is the addition of the first two lines, which
delete the cached instances of the clipped data.
Thanks for the bug report!
John Hunter
More information about the Python-list
mailing list