code: def plot_many(self, datalist, side='left', title=None,
                    xlabel=None, ylabel=None, **kws):
          
          def unpack_tracedata(tdat, **kws):
              if (isinstance(tdat, dict) and
                  'xdata' in tdat and 'ydata' in tdat):
                  xdata = tdat.pop('xdata')
                  ydata = tdat.pop('ydata')
                  out = kws
                  out.update(tdat)
              elif isinstance(tdat, (list, tuple)):
                  out = kws
                  xdata = tdat[0]
                  ydata = tdat[1]
              return (xdata, ydata, out)
  
          opts = dict(side=side, title=title, xlabel=xlabel, ylabel=ylabel,
                      delay_draw=True)
          opts.update(kws)
          x0, y0, opts = unpack_tracedata(datalist[0], **opts)
  
          self.plot(x0, y0, **opts)
  
          for dat in datalist[1:]:
              x, y, opts = unpack_tracedata(dat, delay_draw=True)
              self.oplot(x, y, **opts)
  
          conf = self.conf
          if conf.show_legend:
              conf.draw_legend()
          conf.relabel()
          self.draw()
          self.canvas.Refresh()
docs: plot many traces at once, taking a list of (x, y) pairs