docs: def get_spectrum(self, nr_id=None, abmn=None, plot_filename=None):
          """Return a spectrum and its reciprocal counter part, if present in the
          dataset. Optimally, refer to the spectrum by its normal-reciprocal id.
  
          Returns
          -------
          spectrum_nor : :py:class:`reda.eis.plots.sip_response`
              Normal spectrum. None if no normal spectrum is available
          spectrum_rec : :py:class:`reda.eis.plots.sip_response` or None
              Reciprocal spectrum. None if no reciprocal spectrum is available
          fig : :py:class:`matplotlib.Figure.Figure` , optional
              Figure object (only if plot_filename is set)
  
          """
          assert nr_id is None or abmn is None
          # determine nr_id for given abmn tuple
          if abmn is not None:
              subdata = self.data.query(
                  'a == {} and b == {} and m == {} and n == {}'.format(*abmn)
              ).sort_values('frequency')
              if subdata.shape[0] == 0:
                  return None, None
  
              # determine the norrec-id of this spectrum
              nr_id = subdata['id'].iloc[0]
  
          # get spectra
          subdata_nor = self.data.query(
              'id == {} and norrec=="nor"'.format(nr_id)
          ).sort_values('frequency')
  
          subdata_rec = self.data.query(
              'id == {} and norrec=="rec"'.format(nr_id)
          ).sort_values('frequency')
  
          # create spectrum objects
          spectrum_nor = None
          spectrum_rec = None
  
          if subdata_nor.shape[0] > 0:
              spectrum_nor = eis_plot.sip_response(
                  frequencies=subdata_nor['frequency'].values,
                  rmag=subdata_nor['r'],
                  rpha=subdata_nor['rpha'],
              )
          if subdata_rec.shape[0] > 0:
              spectrum_rec = eis_plot.sip_response(
                  frequencies=subdata_rec['frequency'].values,
                  rmag=subdata_rec['r'],
                  rpha=subdata_rec['rpha'],
              )
          if plot_filename is not None:
              if spectrum_nor is not None:
                  fig = spectrum_nor.plot(
                      plot_filename,
                      reciprocal=spectrum_rec,
                      return_fig=True,
                      title='a: {} b: {} m: {}: n: {}'.format(
                          *subdata_nor[['a', 'b', 'm', 'n']].values[0, :]
                      )
                  )
                  return spectrum_nor, spectrum_rec, fig
          return spectrum_nor, spectrum_rec