fariza
fariza

Reputation: 644

FuncAnimation does not refresh

I am having problems with FuncAnimation, I am using a slightly modified example http://matplotlib.org/examples/animation/basic_example.html

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation


def update_line(num, data, line):
    data.pop(0)
    data.append(np.random.random())
    line.set_ydata(data)

    return line,

fig1 = plt.figure()
data = [0.0 for i in xrange(100)]
l, = plt.plot(data, 'r-')


plt.ylim(-1, 1)
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l), interval=50, blit=True)


plt.show()

The problem is that the first line (updated by update_line) stays in background. If I resize the window (click on the corner of the window and moving the mouse). This first line disappears but now the first line after the resize stays in background.

Is this normal, or I am doing something wrong.

Thanks in advance

Upvotes: 1

Views: 3423

Answers (1)

tacaswell
tacaswell

Reputation: 87396

If you are not overly worried about speed, remove blit=True and it should work.

Blitting is a way to save time by only re-drawing the bits of the figure that have changed (instead of everything), but is easy to get messed up. If you do not include blit=True all the artists get re-drawn every time.

I recommend reading python matplotlib blit to axes or sides of the figure? and Animating Matplotlib panel - blit leaves old frames behind.

Upvotes: 2

Related Questions