class slicePanel(wx.Panel): ''' This is the 1D plot panel which displays the slices which the user selects ''' def __init__(self, parent): wx.Panel.__init__(self, parent, style=wx.BORDER_SUNKEN) self.sliceFigure = Figure(frameon=True, figsize=(2, 3)) self.sliceFigure.set_facecolor('.82') self.sliceCanvas = FigureCanvas(self, -1, self.sliceFigure) self.sliceCanvas.SetAutoLayout(False) self.box = Toolbar(self.sliceCanvas) self.box.Hide() self.box.zoom() self.fm = FigureManagerBase(self.sliceCanvas, 1) _pylab_helpers.Gcf.set_active(self.fm) self.sliceAxis = self.sliceFigure.add_axes([0.1, 0.2, 0.8, 0.7]) sliceSizer = wx.BoxSizer(wx.VERTICAL) sliceSizer.Add(self.sliceCanvas, 1, wx.EXPAND | wx.RIGHT | wx.LEFT, border=1) self.SetSizer(sliceSizer) return def updatePlot(self, data, xaxis, legLab, xlabel, ylabel, title, scale, legTog): ''' The user can select a new slice at any time to plot on the 1D panel. This method refreshes the plot so that the new data is displayed. ''' self.sliceAxis.cla() self.linePlot = self.sliceAxis.plot(xaxis, (array(data).T)) xlim((min(xaxis), max(xaxis))) self.sliceAxis.leg = legend(legLab) self.sliceAxis.leg.set_visible(legTog) self.sliceAxis.set_xlabel(xlabel) self.sliceAxis.set_ylabel(ylabel) self.sliceAxis.set_title(title) self.sliceAxis.set_yscale(str(scale)) draw() return