def METHOD_NAME(self):
    """Generate the plot from time series and arguments
    """
    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, f'ERROR: Input has constant values [{inmin:g}]. '
                        'Spectrogram-like products cannot process them.')
        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)