|
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
>
|