class PlotWidget(Widgets.WidgetBase): def __init__(self, plot, width=500, height=500): super(PlotWidget, self).__init__() self.widget = FigureCanvas(plot.get_figure()) self.plot = plot self.widget.set_size_request(width, height) self.widget.show_all() def configure_window(self, wd, ht): self.logger.debug("canvas resized to %dx%d" % (wd, ht)) fig = self.plot.get_figure() fig.set_size_inches(float(wd) / fig.dpi, float(ht) / fig.dpi)
class Plot(Callback.Callbacks): def __init__(self, logger): Callback.Callbacks.__init__(self) self.logger = logger # For callbacks for name in ('close', ): self.enable_callback(name) self.fig = matplotlib.figure.Figure() self.ax = self.fig.add_subplot(111) self.ax.set_xlabel('X values') self.ax.set_ylabel('Y values') self.ax.set_title('') self.ax.grid(True) self.canvas = FigureCanvas(self.fig) self.canvas.show_all() def get_widget(self): return self.canvas def getAxis(self): return self.ax def _sanity_check_window(self): pass def set_titles(self, xtitle=None, ytitle=None, title=None, rtitle=None): self._sanity_check_window() if xtitle != None: self.ax.set_xlabel(xtitle) if ytitle != None: self.ax.set_ylabel(ytitle) if title != None: self.ax.set_title(title) if rtitle != None: pass def clear(self): self._sanity_check_window() self.logger.debug('clearing canvas...') self.ax.cla() def show(self): self._sanity_check_window() self.logger.debug('raising window...') self.canvas.show() def hide(self): self._sanity_check_window() self.logger.debug('hiding window...') pass def close(self): self.logger.debug('closing window....') self.canvas.destroy() self.make_callback('close') return False def _draw(self): self.fig.canvas.draw() def plot(self, xarr, yarr, xtitle=None, ytitle=None, title=None, rtitle=None, **kwdargs): self.set_titles(xtitle=xtitle, ytitle=ytitle, title=title, rtitle=rtitle) self.ax.plot(xarr, yarr, **kwdargs) self.ax.grid(True) self._draw()
class Plot(Callback.Callbacks): def __init__(self, logger): Callback.Callbacks.__init__(self) self.logger = logger # For callbacks for name in ('close', ): self.enable_callback(name) self.fig = matplotlib.figure.Figure() self.ax = self.fig.add_subplot(111) self.ax.set_xlabel('X values') self.ax.set_ylabel('Y values') self.ax.set_title('') self.ax.grid(True) self.canvas = FigureCanvas(self.fig) self.canvas.show_all() def get_widget(self): return self.canvas def getAxis(self): return self.ax def _sanity_check_window(self): pass def set_titles(self, xtitle=None, ytitle=None, title=None, rtitle=None): self._sanity_check_window() if xtitle != None: self.ax.set_xlabel(xtitle) if ytitle != None: self.ax.set_ylabel(ytitle) if title != None: self.ax.set_title(title) if rtitle != None: pass def clear(self): self._sanity_check_window() self.logger.debug('clearing canvas...') self.ax.cla() def show(self): self._sanity_check_window() self.logger.debug('raising window...') self.canvas.show() def hide(self): self._sanity_check_window() self.logger.debug('hiding window...') pass def close(self): self.logger.debug('closing window....') self.canvas.destroy() self.make_callback('close') return False def _draw(self): self.fig.canvas.draw() def plot(self, xarr, yarr, xtitle=None, ytitle=None, title=None, rtitle=None, color=None, alpha=1.0): self.set_titles(xtitle=xtitle, ytitle=ytitle, title=title, rtitle=rtitle) if not color: self.ax.plot(xarr, yarr, linewidth=1.0, alpha=alpha, linestyle='-') else: self.ax.plot(xarr, yarr, linewidth=1.0, color=color, alpha=alpha, linestyle='-') self.ax.grid(True) self._draw()