docs: def _plot(self, title=None, reciprocal=None, limits=None, dtype='rho',
                **kwargs):
          """Standard plot of spectrum
  
          Parameters
          ----------
          title: string|None, optional
              Title of plot
          reciprocal: sip_response object|None, optional
              If provided, plot this spectrum with another color
          limits: dict|None, optional
              used to set ylimits of the plots. Possible entries: rmag_min,
              rmag_max, rpha_min, rpha_max, cre_min, cre_max, cim_min, cim_max
          dtype: string, optional
              Possible values: [rho|R]. Determines the label types. 'rho':
                  resistivity/conductivity, 'r': resistance/conductance
          label_nor:
              label for normal data (default: "normal")
          label_rec:
              label for reciprocal data (default: "reciprocal")
  
          Returns
          -------
          fig: figure object
              the generated matplotlib figure
          axes: list
              matplotlib axes objects
          """
          if limits is None:
              limits = {}
  
          fig, axes = plt.subplots(
              2, 2, figsize=(15 / 2.54, 6 / 2.54), sharex=True
          )
          if title is not None:
              fig.suptitle(title)
  
          # resistivity magnitude
          if limits is None:
              limits = {}
  
          ax = axes[0, 0]
          ax.semilogx(
              self.frequencies, self.rmag, '.-', color='k',
              label=kwargs.get('label_nor', 'normal'),
          )
          ax.set_ylim(
              limits.get('rmag_min', None),
              limits.get('rmag_max', None)
          )
  
          # resistivity phase
          ax = axes[0, 1]
          ax.semilogx(self.frequencies, -self.rpha, '.-', color='k')
          # note the switch of _min/_max because we change the sign while
          # plotting
          ymin = limits.get('rpha_max', None)
          if ymin is not None:
              ymin *= -1
          ymax = limits.get('rpha_min', None)
          if ymax is not None:
              ymax *= -1
          ax.set_ylim(
              ymin,
              ymax,
          )
  
          # conductivity real part
          ax = axes[1, 0]
          ax.loglog(self.frequencies, self.cre, '.-', color='k')
          ax.set_ylim(
              limits.get('cre_min', None),
              limits.get('cre_max', None)
          )
  
          # conductivity imaginary part
          ax = axes[1, 1]
          ax.loglog(self.frequencies, self.cim, '.-', color='k')
          ax.set_ylim(
              limits.get('cim_min', None),
              limits.get('cim_max', None)
          )
  
          self._add_labels(axes, dtype)
  
          for ax in axes.flatten()[0:2]:
              ax.xaxis.set_major_locator(mpl.ticker.LogLocator(numticks=5))
              ax.yaxis.set_major_locator(mpl.ticker.MaxNLocator(5))
  
          for ax in axes.flatten()[2:]:
              ax.xaxis.set_major_locator(mpl.ticker.LogLocator(numticks=5))
              ax.yaxis.set_major_locator(mpl.ticker.LogLocator(numticks=5))
  
          fig.tight_layout()
          # plot reciprocal spectrum
          if reciprocal is not None:
              axes[0, 0].semilogx(
                  reciprocal.frequencies,
                  reciprocal.rmag,
                  '.-',
                  color='k',
                  linestyle='dashed',
                  label=kwargs.get('label_rec', 'reciprocal'),
              )
              axes[0, 1].semilogx(
                  reciprocal.frequencies,
                  -reciprocal.rpha,
                  '.-',
                  color='k',
                  linestyle='dashed',
              )
              axes[1, 0].loglog(
                  reciprocal.frequencies,
                  reciprocal.cre,
                  '.-',
                  color='k',
                  linestyle='dashed',
              )
              axes[1, 1].loglog(
                  reciprocal.frequencies,
                  reciprocal.cim,
                  '.-',
                  color='k',
                  linestyle='dashed',
              )
  
              fig.subplots_adjust(
                  bottom=0.3,
              )
  
              axes[0, 0].legend(
                  loc="lower center",
                  ncol=4,
                  bbox_to_anchor=(0, 0, 1, 1),
                  bbox_transform=fig.transFigure,
                  fontsize=7.0,
              )
  
          return fig, axes