From: Mark <ma...@gm...> - 2015-01-27 16:51:56
|
ginput works fine in a GUI window, but there is no matplotlib widget where I can type text or numbers in a box. Like the FloatTextWidget in IPython. Or am I missing something? Sent from my iPhone > On Jan 27, 2015, at 17:34, Paul Hobson <pmh...@gm...> wrote: > > I'm 99% sure you can do this in a GUI window. Does your solution have to be in the notebook? > >> On Tue, Jan 27, 2015 at 12:37 AM, Mark Bakker <ma...@gm...> wrote: >> Thanks, Tom. >> >> I want to use ginput to draw a straight line on a graph. >> The line is used to select a cross-section of a contour plot. >> >> I was afraid it wasn't going to be easy. >> >> Getting to it from the other side, is there a matplotlib widget in the works where I can type text or numbers in a box? Like the FloatTextWidget in IPython? >> >> Problem is I want to make a small GUI that includes both a text widget (which is available in IPython) and a 'select points in graph' widget like ginput in matplotlib. >> >> Mark >> >> >>> On Mon, Jan 26, 2015 at 11:47 PM, Thomas Caswell <tca...@gm...> wrote: >>> nbagg is always running in the IPython event loop (as I understand it), so I am not sure how to integrate that with the blocking. >>> >>> On the 1.4.x/master branch we have support for (almost, one PR still pending) all mouse and keyboard events so all of the mpl widgets should work (big thanks to Steven Silvester). T >>> >>> What do you want to use that relies on ginput? >>> >>> You can fake up a non-blocking version something like: >>> >>> from collections import deque >>> ``` >>> class accumulator(object): >>> def __init__(self, n=5): >>> self.list_of_points = deque(maxlen=n) >>> >>> def on_event(self, event): >>> self.list_of_points.append(event) >>> >>> import matplotlib >>> import itertools >>> import numpy as np >>> matplotlib.use('nbagg') >>> import matplotlib.pyplot as plt >>> plt.close('all') >>> fig, ax = plt.subplots() >>> x = np.linspace(0,10,10000) >>> y = np.sin(x) >>> ln, = ax.plot(x,y) >>> >>> dd = accumulator(15) >>> fig.canvas.mpl_connect('button_press_event', dd.on_event) >>> plt.show() >>> ``` >>> >>> and then get the points by >>> >>> ``` >>> dd.lest_of_points >>> ``` >>> >>> This code obviously needs lots of bells and whistles, but points in the right direction. >>> >>> Tom >>> >>>> On Mon Jan 26 2015 at 2:45:45 PM Mark Bakker <ma...@gm...> wrote: >>>> Hello List, >>>> >>>> Are there any plans to make ginput work in the nbagg backend? >>>> >>>> It would be so cool if I could use that in an IPython Notebook together with the other widgets. >>>> >>>> Thanks, >>>> >>>> Mark >>>> ------------------------------------------------------------------------------ >> >> >> ------------------------------------------------------------------------------ >> Dive into the World of Parallel Programming. The Go Parallel Website, >> sponsored by Intel and developed in partnership with Slashdot Media, is your >> hub for all things parallel software development, from weekly thought >> leadership blogs to news, videos, case studies, tutorials and more. Take a >> look and join the conversation now. http://goparallel.sourceforge.net/ >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > |