docs: def plot_magnitude_depth_density(
          catalogue, mag_int, depth_int,
          logscale=False, normalisation=False, bootstrap=None, filename=None,
          figure_size=(8, 6), filetype='png', dpi=300, ax=None):
      """
      Creates a density plot of the magnitude and depth distribution
  
      :param catalogue:
          Earthquake catalogue as instance of :class:
          openquake.hmtk.seismicity.catalogue.Catalogue
      :param float mag_int:
          Width of the histogram for the magnitude bins
      :param float depth_int:
          Width of the histogram for the depth bins
      :param bool logscale:
          Choose to scale the colours in a log-scale (True) or linear (False)
      :param bool normalisation:
          Normalise the histogram to give output as PMF (True) or count (False)
      :param int bootstrap:
          To sample magnitude and depth uncertainties choose number of samples
      """
      if len(catalogue.data['depth']) == 0:  # pylint: disable=len-as-condition
          raise ValueError('No depths reported in catalogue!')
      depth_bins = np.arange(0.,
                             np.max(catalogue.data['depth']) + depth_int,
                             depth_int)
      mag_bins = _get_catalogue_bin_limits(catalogue, mag_int)
      mag_depth_dist = catalogue.get_magnitude_depth_distribution(mag_bins,
                                                                  depth_bins,
                                                                  normalisation,
                                                                  bootstrap)
      vmin_val = np.min(mag_depth_dist[mag_depth_dist > 0.])
  
      if ax is None:
          fig, ax = plt.subplots(figsize=figure_size)
      else:
          fig = ax.get_figure()
  
      if logscale:
          normaliser = LogNorm(vmin=vmin_val, vmax=np.max(mag_depth_dist))
      else:
          normaliser = Normalize(vmin=0, vmax=np.max(mag_depth_dist))
  
      im = ax.pcolor(mag_bins[:-1],
                     depth_bins[:-1],
                     mag_depth_dist.T,
                     norm=normaliser)
      ax.set_xlabel('Magnitude')
      ax.set_ylabel('Depth (km)')
      ax.set_xlim(mag_bins[0], mag_bins[-1])
      ax.set_ylim(depth_bins[0], depth_bins[-1])
      fig.colorbar(im, ax=ax)
      if normalisation:
          ax.set_title('Magnitude-Depth Density')
      else:
          ax.set_title('Magnitude-Depth Count')
  
      _save_image(fig, filename, filetype, dpi)