I'm trying to use matplotlib for animating data as it is received from
an online source (online in the algorithmic
sense not internet:). I'd like the graph plot to be updated with high
frequency since the data changes rapidly. I've
used the BufferRegion with copy_from_bbox / restore_region and it
speeds up the plotting considerably but alas it's
still not good enough (with a large number of graphs and a large
number of data points in each graph).
What I'd like to do is to utilize the fact that the animation is
updated in a predictable fashion (i.e., scrolling off
the screen to the left as new data arrives) in order to speed up the
animation. The idea would be to copy the right 99%
of the graph (or some other fraction) via some kind of function
similar to copy_from_bbox, move it 1% to the left and
then plot the new 1% of the data. The problem is that as far as I can
tell the copy_from_bbox/restore_region does not
actually allow changing the area in which it is restored. I've mucked
around in the source files a bit but to no avail.
My question is then:
1. Is there some other way to copy everything enclosed in a Bbox? or
2. Is there some way to modify the region in which data reappears when
3. Perhaps I'm missing something?
It would also be nice if it was possible to transform the plot (i.e.
make it larger/smaller depending on how the y-axis changes) although I
suppose this is doable via using an auxiliary canvas.
I'm sure someone else has done this since it seems pretty natural and
useful for a variety of applications.
If I knew that a man was coming to my house with the conscious design
of doing me good, I should run for my life.
- Henry David Thoreau