code: def make_plot(self):
          
          args = self.args
  
          fftlength = float(args.secpfft)
          overlap = args.overlap
          self.log(2, "Calculating spectrum secpfft: {0}, overlap: {1}".format(
              fftlength, overlap))
          overlap *= fftlength
  
          # create plot
          plot = Plot(figsize=self.figsize, dpi=self.dpi)
          ax = plot.gca()
  
          # handle user specified plot labels
          if self.args.legend:
              nlegargs = len(self.args.legend[0])
          else:
              nlegargs = 0
          if nlegargs > 0 and nlegargs != self.n_datasets:
              warnings.warn('The number of legends specified must match '
                            'the number of time series'
                            ' (channels * start times).  '
                            'There are {:d} series and {:d} legends'.format(
                              len(self.timeseries), len(self.args.legend)))
              nlegargs = 0  # don't use  themm
  
          for i in range(0, self.n_datasets):
              series = self.timeseries[i]
              if nlegargs:
                  label = self.args.legend[0][i]
              else:
                  label = series.channel.name
                  if len(self.start_list) > 1:
                      label += ', {0}'.format(series.epoch.gps)
  
              asd = series.asd(fftlength=fftlength, overlap=overlap)
              self.spectra.append(asd)
  
              if self.usetex:
                  label = label_to_latex(label)
  
              ax.plot(asd, label=label)
  
          if args.xscale == 'log' and not args.xmin:
              args.xmin = 1/fftlength
  
          return plot
docs: Generate the plot from time series and arguments