So I’m representing a token ring network (doing the simulation in SimPy), I’m a totally newbie to matplotlib, but I was told that it’d be really good for representing my simulation visually.
So I googled around and found out how to draw shapes and lines – using add_patch and add_line respectively to the axes (I believe). So now I have this output which is absolutely fine:
(can’t post images yet!!)
http://img137.imageshack.us/img137/7822/screenshot20100121at120.png
But I’m getting this using the pylab.show() function, and what I think I want is to achieve this using the pylab.plot() function so that I can then update it as my simulation progresses using pylab.draw() afterward.
My code is as follows:
plab.ion()
plab.axes()
for circ in self.circleList:
plab.gca().add_patch(circ)
for line in self.lineList:
plab.gca().add_line(line)
plab.axis('scaled')
plab.show()
Where circleList and lineList are lists containing the circles and lines on the diagram
I’m probably misunderstanding something simple here, but I can’t actually find any examples that aren’t overtly graph based that use the plot() function.
Clarification:
How can I get that same output, using pylab.plot() instead of pylab.show() ?
Replicating your image using the plot method:
EDIT BASED ON COMMENTS
This uses python multiprocessing library to run the matplotlib animation in a separate process. The main process uses a queue to pass data to it which then updates the plot image.
Of course, after doing this I think you’ll be better served with whatnick’s image solution. I’d create my own GUI and not use matplotlibs built in widget. I’d then “animate” my GUI by generating PNGs and swapping them.