docs: def BuildPanel(self):
          """ builds basic GUI panel and popup menu"""
          self.fig   = Figure(self.figsize, dpi=self.dpi)
          # 1 axes for now
          self.gridspec = GridSpec(1,1)
          kwargs = {'facecolor': self.conf.bgcolor}
          if matplotlib.__version__ < "2.0":
              kwargs = {'axisbg': self.conf.bgcolor}
  
          self.axes  = self.fig.add_subplot(self.gridspec[0], **kwargs)
  
          self.canvas = FigureCanvas(self, -1, self.fig)
  
          self.printer.canvas = self.canvas
          self.set_bg(self.conf.framecolor)
          self.conf.canvas = self.canvas
          self.canvas.SetCursor(wxCursor(wx.CURSOR_CROSS))
          self.canvas.mpl_connect("pick_event", self.__onPickEvent)
  
          # overwrite ScalarFormatter from ticker.py here:
          self.axes.xaxis.set_major_formatter(FuncFormatter(self.xformatter))
          self.axes.yaxis.set_major_formatter(FuncFormatter(self.yformatter))
  
          # This way of adding to sizer allows resizing
          sizer = wx.BoxSizer(wx.VERTICAL)
          sizer.Add(self.canvas, 2, wx.LEFT|wx.TOP|wx.BOTTOM|wx.EXPAND, 0)
          self.SetAutoLayout(True)
          self.autoset_margins()
          self.SetSizer(sizer)
          self.Fit()
  
          canvas_draw = self.canvas.draw
          def draw(*args, **kws):
              self.autoset_margins()
              canvas_draw(*args, **kws)
          self.canvas.draw = draw
          self.addCanvasEvents()