Ejemplo n.º 1
0
 def setup_mpl_events(self):
     self.image_axeswidget = AxesWidget(self.image_axes)
     self.image_axeswidget.connect_event('motion_notify_event',
                                         self.image_on_motion)
     #self.image_axeswidget.connect_event('figure_leave_event', self.on_cursor_leave)
     #self.image_axeswidget.connect_event('figure_enter_event', self.on_cursor_enter)
     wx.EVT_RIGHT_DOWN(self.image_figure.canvas, self.on_right_down)
Ejemplo n.º 2
0
 def setup_mpl_events(self):
     self.image_axeswidget = AxesWidget(self.image_axes)
     self.image_axeswidget.connect_event('motion_notify_event',
                                         self.image_on_motion)
     self.image_axeswidget.connect_event('figure_leave_event',
                                         self.on_cursor_leave)
     self.image_axeswidget.connect_event('figure_enter_event',
                                         self.on_cursor_enter)
     self.image_axeswidget.connect_event('button_press_event',
                                         self.image_on_click)
Ejemplo n.º 3
0
 def __init__(self, parent, dpi=None, **kwargs):
     wx.Panel.__init__(self, parent, wx.ID_ANY, wx.DefaultPosition,
                       wx.DefaultSize, **kwargs)
     self.ztv_frame = self.GetTopLevelParent()
     self.figure = Figure(dpi=None, figsize=(1., 1.))
     self.axes = self.figure.add_subplot(111)
     self.canvas = FigureCanvasWxAgg(self, -1, self.figure)
     self.Bind(wx.EVT_SIZE, self._onSize)
     self.axes_widget = AxesWidget(self.figure.gca())
     self.axes_widget.connect_event('motion_notify_event', self.on_motion)
     self.plot_point = None
Ejemplo n.º 4
0
    def test_just_runs_and_exits_gracefully(self):
        from matplotlib.widgets import AxesWidget
        from ipywidgets.widgets import HBox
        ifig = plt.figure()
        iax = plt.gca()
        nglwdg = nglview.demo()
        mplw = AxesWidget(iax)

        box_out = visualize._box_me((ifig, iax, nglwdg, mplw))

        assert isinstance(box_out, HBox)

        assert None is visualize._box_me((ifig, iax, nglwdg, mplw, 1))
Ejemplo n.º 5
0
def link_ngl_wdgt_to_ax_pos(ax, pos, ngl_widget):
    from matplotlib.widgets import AxesWidget
    from scipy.spatial import cKDTree
    r"""
    Initial idea for this function comes from @arose, the rest is @gph82 and @clonker
    """

    kdtree = cKDTree(pos)
    #assert ngl_widget.trajectory_0.n_frames == pos.shape[0]
    x, y = pos.T

    lineh = ax.axhline(ax.get_ybound()[0], c="black", ls='--')
    linev = ax.axvline(ax.get_xbound()[0], c="black", ls='--')
    dot, = ax.plot(pos[0, 0], pos[0, 1], 'o', c='red', ms=7)

    ngl_widget.isClick = False

    def onclick(event):
        linev.set_xdata((event.xdata, event.xdata))
        lineh.set_ydata((event.ydata, event.ydata))
        data = [event.xdata, event.ydata]
        _, index = kdtree.query(x=data, k=1)
        dot.set_xdata((x[index]))
        dot.set_ydata((y[index]))
        ngl_widget.isClick = True
        ngl_widget.frame = index

    def my_observer(change):
        r"""Here comes the code that you want to execute
        """
        ngl_widget.isClick = False
        _idx = change["new"]
        try:
            dot.set_xdata((x[_idx]))
            dot.set_ydata((y[_idx]))
        except IndexError as e:
            dot.set_xdata((x[0]))
            dot.set_ydata((y[0]))
            print("caught index error with index %s (new=%s, old=%s)" %
                  (_idx, change["new"], change["old"]))

    # Connect axes to widget
    axes_widget = AxesWidget(ax)
    axes_widget.connect_event('button_release_event', onclick)

    # Connect widget to axes
    ngl_widget.observe(my_observer, "frame", "change")
Ejemplo n.º 6
0
 def mpl_setup(self):
     self.axes_widget = AxesWidget(self.figure.gca())
     self.axes_widget.connect_event('button_press_event', self.on_click)
     self.axes_widget.connect_event('scroll_event', self.on_scroll)