From: Perry G. <pe...@st...> - 2005-02-23 14:21:32
|
On Feb 23, 2005, at 1:28 AM, Greg Novak wrote: > Gripe #3 is related to interactive windows when Python and the X11 > server are connected by a slow link. All of the interactive backends > I've used for matplotlib look great, but render very slowly in this > situation b/c they're sending all the pixel data. Since most plots > consist of a few lines, a bit of text, and a few dots, it'd be nice if > the windows rendered quickly over slow connections. For example, > Gnuplot runs very well in this configuration. I realize that this > doesn't invovle matplotlib per se, I just wanted to throw it out there > as a concern. > This is a consequence of how most of the interactive backends are implemented. Since matplotlib is using agg to render graphics for them, all updates to graphs mean a new image must be transmitted to the window. If it is a remote window, that update is going to cost. There may be ways of improving the backends so that not the whole window needs to be updated, but I have a feeling that isn't going to yield a big improvement in many cases (a new plot of points means changes over most of the image even if it can be characterized by a relatively small number of points and labels). I don't see any great solution to this (maybe John has some good ideas). I pointed this out as a consequence of going this way before it was done (and I recommended going this way :-). Implementing the backends using their built in plotting commands may be a way around this, but it means having much higher maintenance costs for backends and lots of annoying capability mismatches (some backends don't support rotated text, alpha blending, etc.) Perry |