code: def make_plot(self):
          
          args = self.args
  
          # constant input causes unhelpful (weird) error messages
          # translate them to English
          inmin = self.timeseries[0].min().value
          if inmin == self.timeseries[0].max().value:
              if not self.got_error:
                  self.log(0, 'ERROR: Input has constant values [{:g}]. '
                              'Spectrogram-like products cannot process '
                              'them.'.format(inmin))
              self.got_error = True
          else:
              # create 'raw' spectrogram
              specgram = self.get_spectrogram()
  
              # there may be data that can't be processed
              if specgram is not None:  # <-DMM: why is this here?
                  # apply normalisation
                  if args.norm:
                      specgram = specgram.ratio(args.norm)
  
                  self.result = specgram
  
                  # -- update plot defaults
  
                  if not args.ymin:
                      args.ymin = 1/args.secpfft if args.yscale == 'log' else 0
  
                  norm = 'log' if args.color_scale == 'log' else None
                  # vmin/vmax set in scale_axes_from_data()
                  return specgram.plot(figsize=self.figsize, dpi=self.dpi,
                                       norm=norm, cmap=args.cmap)
docs: Generate the plot from time series and arguments