29/10/11 21:50, Benjamin Root > On Saturday, October 29, 2011, Antoine Levitt > <antoine.lev...@gmail.com> wrote: >> 29/10/11 21:20, Benjamin Root >>> On Saturday, October 29, 2011, Antoine Levitt >>> <antoine.lev...@gmail.com> wrote: >>>> 29/10/11 19:39, Benjamin Root >>>>> I don't think there is a document for the default keymaps, and >>> there >>>>> has been some talk about redoing default keybindings, because > they >>> are >>>>> so hidden and varies from backend to backend. >>>>> >>>>> In the meantime, I would suggest checking out the "event > handeling" >>>>> section of the examples page. You can have a function that you >>> attach >>>>> to the "key_press_event", which takes an "event" object as an >>>>> argument. That event object has the key that was pressed. You > can >>>>> then have an if...elif...else statement for all the keys and >>> actions, >>>>> or have a dictionary of key-action pairs. >>>>> >>>>> Hope that helps! >>>>> Ben Root >>>> >>>> That's pretty cool! However, I have to do it for every figure I >>> create, >>>> there doesn't seem to be a way to tell matplotlib : "whenever a >>> figure >>>> is created, associate this handler to this event". >>>> >>>> I think I'll just wait for the keybinding stuff to get refactored, >>> which >>>> would definitely be a good idea (I only found out via very > indirect >>>> means, and had to change backend to get them working). It seems >>>> worthwhile to have a "q" default binding to exit the plot. >>>> >>> >>> The basic event handling isn't going to be refactored. I was > merely >>> speaking of how the default keymaps are set. Yes, you will need to >>> mpl_connect for each figure object. This is standard for any GUI >>> control system. What you can do is make a function that produces a >>> figure for you as well as perform any event connections for you. >>> >>> Ben Root >> >> The problem is that I don't usually invoke figure(), I just do >> plot(x,y), which will presumably call figure for me. So unless > there's >> some kind of event that's run after figure is called, I can't have a >> generic way of adding my bindings. >> > > Try > > gcf().canvas.mpl_connect(...)
Just typing f = gcf() displays a figure, which I don't want to do. I want to be able to put something in my ipython init file that'd set my bindings, without changing anything else. ------------------------------------------------------------------------------ Get your Android app more play: Bring it to the BlackBerry PlayBook in minutes. BlackBerry App World™ now supports Android™ Apps for the BlackBerry® PlayBook™. Discover just how easy and simple it is! http://p.sf.net/sfu/android-dev2dev _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel