DaFudl wrote: > I integrated mpl into my wxPython application for plotting simple lines. > I would like my canvas to behave differently when the containing window is > being resized. > At the moment all text, all lines, all markers, the legend... remain in the > same state (same size and thickness) regardless whether the plot is small or > big. As a result the plot looks fine at one size only. > I need all elements to be resized with the window just like it happens in > Microcal's scientific plotting software "origin". Everything should resize > as a "whole".
I think what you're asking for would require a pretty major overhaul of matplotlib. The fact that all the text etc. remains the same size is a deliberate design decision, and actually requires a lot more work to make fast enough, since a lot more must be recalculated with each redraw, rather than just multiplying everything by a scale factor. All that said, you could experiment with rendering to a vector format (e.g. Pdf or Svg) and then have wxPython render it directly with each window resize. (This would be much the same way that resizing a PDF generated by matplotlib in Acrobat Reader scales everything as a whole). Alternatively, you could try using a backend (e.g. Cairo) that allows you to push a global affine transformation onto the transformation stack. (At present, the Agg backends don't have that functionality -- but it could be added, especially since the recent overhaul of transformations in general in matplotlib.) That way, you could tell the underlying rendering engine (below matplotlib) to scale everything up and down for any subsequent commands it receives from matplotlib. But, anyway you slice it, I think you're looking at getting your hands dirty in some matplotlib internals. I'm happy to help if you want to work through it, but I don't think I would have time myself. > Also, it would be great to keep the aspect ratio of the plot when resizing > and zooming. I could not figure out how to do that. Using methods like > apply_aspect and set_adjustable is not enough. That seems to be easy enough to do in the window resize callback -- just programmatically force-resize the window to the desired aspect ratio. Cheers, Mike -- Michael Droettboom Science Software Branch Operations and Engineering Division Space Telescope Science Institute Operated by AURA for NASA ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users