docs: def plot(self, plot_cmd=None, tf=lambda y: y):
          """plot the data we have, return ``self``"""
          if not plot_cmd:
              plot_cmd = self.plot_cmd
          colors = 'bgrcmyk'
          pyplot.hold(False)
          res = self.res
  
          flatx, flatf = self.flattened()
          minf = np.inf
          for i in flatf:
              minf = min((minf, min(flatf[i])))
          addf = 1e-9 - minf if minf <= 1e-9 else 0
          for i in sorted(res.keys()):  # we plot not all values here
              if isinstance(i, int):
                  color = colors[i % len(colors)]
                  arx = sorted(res[i].keys())
                  plot_cmd(arx, [tf(np.median(res[i][x]) + addf) for x in arx], color + '-')
                  pyplot.text(arx[-1], tf(np.median(res[i][arx[-1]])), i)
                  pyplot.hold(True)
                  plot_cmd(flatx[i], tf(np.array(flatf[i]) + addf), color + 'o')
          pyplot.ylabel('f + ' + str(addf))
          pyplot.draw()
          pyplot.ion()
          pyplot.show()
          # raw_input('press return')
          return self