예제 #1
0
파일: graph.py 프로젝트: sgallet/pychron
    def clear_plots(self):
        x = range(len(self.plots))

        self.xdataname_generators = [
            self._name_generator_factory('x') for _ in x
        ]
        self.ydataname_generators = [
            self._name_generator_factory('y') for _ in x
        ]
        self.yerdataname_generators = [
            self._name_generator_factory('yer') for _ in x
        ]

        self.color_generators = [color_generator() for _ in x]
        #         for po in x:

        self.series = [[] for _ in x]
        self.data_len = [[] for _ in x]
        self.data_limits = [[] for _ in x]

        #         print '====== {}'.format(self)
        #         print 'len plots {}'.format(len(self.plots))
        for pi in self.plots:
            #             print 'len pi.renderers {}'.format(len(pi.plots.keys()))
            for k, pp in pi.plots.items():
                for renderer in pp:
                    try:
                        pi.remove(renderer)
                    except RuntimeError:
                        print 'failed removing {}'.format(renderer)

                pi.plots.pop(k)
                #             print 'len psss.renderers {}'.format(len(pi.plots.keys()))

        self.clear_data()
예제 #2
0
파일: graph.py 프로젝트: jirhiker/pychron
    def clear_plots(self):
        x = range(len(self.plots))

        self.xdataname_generators = [self._name_generator_factory('x') for _ in x]
        self.ydataname_generators = [self._name_generator_factory('y') for _ in x]
        self.yerdataname_generators = [self._name_generator_factory('yer') for _ in x]

        self.color_generators = [color_generator() for _ in x]
        #         for po in x:

        self.series = [[] for _ in x]
        self.data_len = [[] for _ in x]
        self.data_limits = [[] for _ in x]

        #         print '====== {}'.format(self)
        #         print 'len plots {}'.format(len(self.plots))
        for pi in self.plots:
        #             print 'len pi.renderers {}'.format(len(pi.plots.keys()))
            for k, pp in pi.plots.items():
                for renderer in pp:
                    try:
                        pi.remove(renderer)
                    except RuntimeError:
                        print 'failed removing {}'.format(renderer)

                pi.plots.pop(k)
                #             print 'len psss.renderers {}'.format(len(pi.plots.keys()))

        self.clear_data()
예제 #3
0
    def clear(self, clear_container=True):
        """
        """
        self.clear_plots()

        self.plots = []

        self.xdataname_generators = [name_generator('x')]
        self.ydataname_generators = [name_generator('y')]
        self.yerdataname_generators = [name_generator('yer')]

        self.color_generators = [color_generator()]

        self.series = []
        self.data_len = []
        self.data_limits = []

        if clear_container:
            self.plotcontainer = pc = self.container_factory()
            if self.use_context_menu:
                menu = ContextualMenuTool(parent=self, component=pc)

                pc.tools.append(menu)

        self.selected_plot = None
예제 #4
0
파일: graph.py 프로젝트: NMGRL/pychron
    def new_plot(self, add=True, **kw):
        """
        """
        p = plot_factory(**kw)

        self.plots.append(p)
        self.color_generators.append(color_generator())
        self.xdataname_generators.append(name_generator('x'))
        self.ydataname_generators.append(name_generator('y'))
        self.yerdataname_generators.append(name_generator('yer'))

        self.series.append([])

        pc = self.plotcontainer
        if add:
            if not isinstance(add, bool):
                pc.insert(add, p)
            else:
                pc.add(p)

        zoom = kw['zoom'] if 'zoom' in kw else False
        pan = kw['pan'] if 'pan' in kw else False

        tools = []
        if zoom:
            nkw = dict(tool_mode='box',
                       always_on=False)
            if 'zoom_dict' in kw:
                zoomargs = kw['zoom_dict']
                for k in zoomargs:
                    nkw[k] = zoomargs[k]

            from chaco.tools.api import ZoomTool

            zt = ZoomTool(component=p, **nkw)

            p.overlays.append(zt)
            tools.append(zt)

        if pan:
            from .tools.pan_tool import MyPanTool as PanTool

            kwargs = dict(always_on=False)
            if isinstance(pan, str):
                kwargs['constrain'] = True
                kwargs['constrain_direction'] = pan
                kwargs['constrain_key'] = None

            pt = PanTool(p, container=pc, **kwargs)
            tools.append(pt)

        plotid = len(self.plots) - 1

        for t in ['x', 'y']:
            title = '{}title'.format(t)
            if title in kw:
                self._set_title('{}_axis'.format(t), kw[title], plotid)

        p.tools = tools
        return p
예제 #5
0
파일: graph.py 프로젝트: NMGRL/pychron
    def clear(self, clear_container=True):
        """
        """
        self.clear_plots()

        self.plots = []

        self.xdataname_generators = [name_generator('x')]
        self.ydataname_generators = [name_generator('y')]
        self.yerdataname_generators = [name_generator('yer')]

        self.color_generators = [color_generator()]

        self.series = []
        self.data_len = []
        self.data_limits = []

        if clear_container:
            self.plotcontainer = pc = self.container_factory()
            if self.use_context_menu:
                menu = ContextualMenuTool(parent=self,
                                          component=pc)

                pc.tools.append(menu)

        self.selected_plot = None
예제 #6
0
    def new_plot(self, add=True, **kw):
        """
        """
        p = plot_factory(**kw)

        self.plots.append(p)
        self.color_generators.append(color_generator())
        self.xdataname_generators.append(name_generator('x'))
        self.ydataname_generators.append(name_generator('y'))
        self.yerdataname_generators.append(name_generator('yer'))

        self.series.append([])

        pc = self.plotcontainer
        if add:
            if not isinstance(add, bool):
                pc.insert(add, p)
            else:
                pc.add(p)

        zoom = kw['zoom'] if 'zoom' in kw else False
        pan = kw['pan'] if 'pan' in kw else False

        tools = []
        if zoom:
            nkw = dict(tool_mode='box', always_on=False)
            if 'zoom_dict' in kw:
                zoomargs = kw['zoom_dict']
                for k in zoomargs:
                    nkw[k] = zoomargs[k]

            from chaco.tools.api import ZoomTool

            zt = ZoomTool(component=p, **nkw)

            p.overlays.append(zt)
            tools.append(zt)

        if pan:
            from .tools.pan_tool import MyPanTool as PanTool

            kwargs = dict(always_on=False)
            if isinstance(pan, str):
                kwargs['constrain'] = True
                kwargs['constrain_direction'] = pan
                kwargs['constrain_key'] = None

            pt = PanTool(p, container=pc, **kwargs)
            tools.append(pt)

        plotid = len(self.plots) - 1

        for t in ['x', 'y']:
            title = '{}title'.format(t)
            if title in kw:
                self._set_title('{}_axis'.format(t), kw[title], plotid)

        p.tools = tools
        return p
예제 #7
0
파일: graph.py 프로젝트: jirhiker/pychron
    def clear(self):
        """
        """
        self.clear_plots()

        self.plots = []

        self.xdataname_generators = [self._name_generator_factory('x')]
        self.ydataname_generators = [self._name_generator_factory('y')]
        self.yerdataname_generators = [self._name_generator_factory('yer')]

        self.color_generators = [color_generator()]

        self.series = []
        self.data_len = []

        #         self.raw_x = []
        #         self.raw_y = []
        #         self.raw_yer = []

        self.data_limits = []
        self.plotcontainer = self.container_factory()

        self.selected_plot = None
예제 #8
0
    def clear_plots(self):
        x = list(range(len(self.plots)))

        self.xdataname_generators = [name_generator('x') for _ in x]
        self.ydataname_generators = [name_generator('y') for _ in x]
        self.yerdataname_generators = [name_generator('yer') for _ in x]

        self.color_generators = [color_generator() for _ in x]

        self.series = [[] for _ in x]
        self.data_len = [[] for _ in x]
        self.data_limits = [[] for _ in x]

        for pi in self.plots:
            for k, pp in list(pi.plots.items()):
                for renderer in pp:
                    try:
                        pi.remove(renderer)
                    except RuntimeError:
                        print('failed removing {}'.format(renderer))

                pi.plots.pop(k)

        self.clear_data()
예제 #9
0
파일: graph.py 프로젝트: sgallet/pychron
    def clear(self):
        """
        """
        self.clear_plots()

        self.plots = []

        self.xdataname_generators = [self._name_generator_factory('x')]
        self.ydataname_generators = [self._name_generator_factory('y')]
        self.yerdataname_generators = [self._name_generator_factory('yer')]

        self.color_generators = [color_generator()]

        self.series = []
        self.data_len = []

        #         self.raw_x = []
        #         self.raw_y = []
        #         self.raw_yer = []

        self.data_limits = []
        self.plotcontainer = self.container_factory()

        self.selected_plot = None
예제 #10
0
파일: graph.py 프로젝트: jirhiker/pychron
    def new_plot(self, add=True, **kw):
        """
        """
        p = self._plot_factory(**kw)

        self.plots.append(p)
        self.color_generators.append(color_generator())
        self.xdataname_generators.append(name_generator('x'))
        self.ydataname_generators.append(name_generator('y'))
        self.yerdataname_generators.append(name_generator('yer'))

        self.series.append([])
        #         self.raw_x.append([])
        #         self.raw_y.append([])
        #         self.raw_yer.append([])

        pc = self.plotcontainer
        if add:
            if not isinstance(add, bool):
                pc.insert(add, p)
            else:
                pc.add(p)

        zoom = kw['zoom'] if 'zoom' in kw  else False
        pan = kw['pan'] if 'pan' in kw else False

        contextmenu = kw['contextmenu'] if 'contextmenu' in kw.keys() else True
        tools = []
        if zoom:
            nkw = dict(tool_mode='box',
                       always_on=False
            )
            if 'zoom_dict' in kw:
                zoomargs = kw['zoom_dict']
                for k in zoomargs:
                    nkw[k] = zoomargs[k]
            zt = ZoomTool(component=p, **nkw)
            p.overlays.append(zt)
            tools.append(zt)

        if pan:
            kwargs = dict(always_on=False)
            if isinstance(pan, str):
                kwargs['constrain'] = True
                kwargs['constrain_direction'] = pan
                kwargs['constrain_key'] = None

            pt = PanTool(p, container=pc, **kwargs)
            tools.append(pt)

        plotid = len(self.plots) - 1

        #for tool in pc.tools:
        #    if isinstance(tool, ContextualMenuTool):
        #        contextmenu = False

        #if contextmenu:
        #    menu = ContextualMenuTool(parent=weakref.ref(self)(),
        #                              component=pc)
        #    pc.tools.append(menu)

        for t in ['x', 'y']:
            title = '{}title'.format(t)
            if title in kw:
                self._set_title('{}_axis'.format(t), kw[title], plotid)

                #        broadcaster = BroadcasterTool(tools=tools
                #                                      )
                #        p.tools.insert(0, broadcaster)
        p.tools = tools
        return p
예제 #11
0
파일: graph.py 프로젝트: sgallet/pychron
    def new_plot(self, add=True, **kw):
        """
        """
        p = self._plot_factory(**kw)

        self.plots.append(p)
        self.color_generators.append(color_generator())
        self.xdataname_generators.append(name_generator('x'))
        self.ydataname_generators.append(name_generator('y'))
        self.yerdataname_generators.append(name_generator('yer'))

        self.series.append([])
        #         self.raw_x.append([])
        #         self.raw_y.append([])
        #         self.raw_yer.append([])

        pc = self.plotcontainer
        if add:
            if not isinstance(add, bool):
                pc.insert(add, p)
            else:
                pc.add(p)

        zoom = kw['zoom'] if 'zoom' in kw else False
        pan = kw['pan'] if 'pan' in kw else False

        contextmenu = kw['contextmenu'] if 'contextmenu' in kw.keys() else True
        tools = []
        if zoom:
            nkw = dict(tool_mode='box', always_on=False)
            if 'zoom_dict' in kw:
                zoomargs = kw['zoom_dict']
                for k in zoomargs:
                    nkw[k] = zoomargs[k]
            zt = ZoomTool(component=p, **nkw)
            p.overlays.append(zt)
            tools.append(zt)

        if pan:
            kwargs = dict(always_on=False)
            if isinstance(pan, str):
                kwargs['constrain'] = True
                kwargs['constrain_direction'] = pan
                kwargs['constrain_key'] = None

            pt = PanTool(p, container=pc, **kwargs)
            tools.append(pt)

        plotid = len(self.plots) - 1

        #for tool in pc.tools:
        #    if isinstance(tool, ContextualMenuTool):
        #        contextmenu = False

        #if contextmenu:
        #    menu = ContextualMenuTool(parent=weakref.ref(self)(),
        #                              component=pc)
        #    pc.tools.append(menu)

        for t in ['x', 'y']:
            title = '{}title'.format(t)
            if title in kw:
                self._set_title('{}_axis'.format(t), kw[title], plotid)

                #        broadcaster = BroadcasterTool(tools=tools
                #                                      )
                #        p.tools.insert(0, broadcaster)
        p.tools = tools
        return p