From: Mathieu L. <lep...@gm...> - 2008-08-21 16:53:20
|
Hi all, I am trying to automatically adjust margins with the SVG backend. The FAQ example : http://matplotlib.sourceforge.net/doc/html/faq/howto_faq.html#how-do-i-automatically-make-room-for-my-tick-labels only works with GUI backends. May it come from get_window_extent() call ? How could I modify this snipplet so that it works with SVG (or PDF) backends ? Thank you for your support. |
From: Jae-Joon L. <lee...@gm...> - 2008-08-21 22:50:14
Attachments:
myfigure.py
|
While I don't know much about how callbacks work in matplotlib, looking at the source code of figure.draw() method, it seems that call_back functions connected with the "draw_event" are called after a figure is drawn. Therefore, you need a second draw. My guess is that this second draw is somehow automagically done in gui backends. So, a quick and easy solution would be to save the same figure twice. First one will have a figure before the adjustment, but the second one will have a figure after the adjustment. Or, you may create a custom figure class which overrides the draw() method to adjust the margins before you draw the actual figure. Attached is an example of such custom figure class. I slightly modified the original example. -JJ On Thu, Aug 21, 2008 at 12:53 PM, Mathieu Leplatre <lep...@gm...> wrote: > Hi all, > I am trying to automatically adjust margins with the SVG backend. > > The FAQ example : > http://matplotlib.sourceforge.net/doc/html/faq/howto_faq.html#how-do-i-automatically-make-room-for-my-tick-labels > only works with GUI backends. > May it come from get_window_extent() call ? > > How could I modify this snipplet so that it works with SVG (or PDF) backends ? > > Thank you for your support. > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Mathieu L. <lep...@gm...> - 2008-08-24 22:55:34
|
On Thu, Aug 21, 2008 at 7:50 PM, Jae-Joon Lee <lee...@gm...> wrote: > While I don't know much about how callbacks work in matplotlib, > looking at the source code of figure.draw() method, it seems that > call_back functions connected with the "draw_event" are called after a > figure is drawn. Therefore, you need a second draw. My guess is that > this second draw is somehow automagically done in gui backends. > So, a quick and easy solution would be to save the same figure twice. > First one will have a figure before the adjustment, but the second one > will have a figure after the adjustment. This works as you expected :) > Or, you may create a custom figure class which overrides the draw() > method to adjust the margins before you draw the actual figure. > Attached is an example of such custom figure class. I slightly > modified the original example. The solution is nice, I'll go for this one ! I don't feel confident enough yet to look inside the library's code, I definitely should ! Thank you very much Jae-Joon ! > > -JJ > > > > > > > > > On Thu, Aug 21, 2008 at 12:53 PM, Mathieu Leplatre <lep...@gm...> wrote: >> Hi all, >> I am trying to automatically adjust margins with the SVG backend. >> >> The FAQ example : >> http://matplotlib.sourceforge.net/doc/html/faq/howto_faq.html#how-do-i-automatically-make-room-for-my-tick-labels >> only works with GUI backends. >> May it come from get_window_extent() call ? >> >> How could I modify this snipplet so that it works with SVG (or PDF) backends ? >> >> Thank you for your support. >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >> Build the coolest Linux based applications with Moblin SDK & win great prizes >> Grand prize is a trip for two to an Open Source event anywhere in the world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> > |