On Fri, May 28, 2010 9:15 pm, John Hunter wrote:
> On Fri, May 28, 2010 at 1:04 PM, Pearu Peterson <pe...@cens.ioc.ee> wrote:
>
>> Regarding reusing existing line --- I have understood that this
>> will work only if the length of the line data does not change.
>
> This is not correct -- you can change the line length with calls to
> set_data
>
>> In my case the data grows as more data points are acquired and I have
>> not figured out how to make axes to set new limits after changing
>> the line data.
>
> ax.relim()

Ok, very good. However, it does not seem to have effect. Consider
the following example:

#
import numpy
from numpy.testing.utils import memusage
import matplotlib
matplotlib.use('GTKAgg')

import matplotlib.pyplot as plt

fig = plt.figure()
axes1 = fig.add_subplot( 111 )

def animate():
    x = [0]
    while 1:
        y = numpy.random.rand (len (x))
        if 1:
            # updating line in place
            if not axes1.lines:
                line, = axes1.plot(x, y, 'b')
            else:
                line.set_data(x, y)
                # relim does not have effect in updating axes
                axes1.relim()
        else:
            # demonstrates expected behaviour, has leakage w/o Mike patch
            for line in axes1.lines:
                line.remove()
            line, = axes1.plot(x, y, 'b')
        fig.canvas.draw()
        print memusage ()/(1024.0*1024.0),"MB", len (axes1.lines), len(x)
        x.append(x[-1]+1)

import gobject
print 'adding idle'
gobject.idle_add(animate)
print 'showing'
plt.show()
#eof

While the new data is plotted correctly, the plot shows fixed axes
from the first plot call. What I am doing wrong?

Pearu


------------------------------------------------------------------------------

_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to