docs: def common_mean_bootstrap(Data1, Data2, NumSims=1000, save=False, save_folder='.', fmt='svg', figsize=(7, 2.3), x_tick_bins=4):
      """
      Conduct a bootstrap test (Tauxe, 2010) for a common mean on two declination,
      inclination data sets. Plots are generated of the cumulative distributions
      of the Cartesian coordinates of the means of the pseudo-samples (one for x,
      one for y and one for z). If the 95 percent confidence bounds for each
      component overlap, the two directions are not significantly different.
  
      Parameters
      ----------
      Data1 : a nested list of directional data [dec,inc] (a di_block)
      Data2 : a nested list of directional data [dec,inc] (a di_block)
              if Data2 is length of 1, treat as single direction
      NumSims : number of bootstrap samples (default is 1000)
      save : optional save of plots (default is False)
      save_folder : path to directory where plots should be saved
      fmt : format of figures to be saved (default is 'svg')
      figsize : optionally adjust figure size (default is (7, 2.3))
      x_tick_bins : because they occasionally overlap depending on the data, this
          argument allows you adjust number of tick marks on the x axis of graphs
          (default is 4)
  
      Returns
      -------
      three plots : cumulative distributions of the X, Y, Z of bootstrapped means
  
      Examples
      --------
      Develop two populations of directions using ``ipmag.fishrot``. Use the
      function to determine if they share a common mean (through visual inspection
      of resulting plots).
  
      >>> directions_A = ipmag.fishrot(k=20, n=30, dec=40, inc=60)
      >>> directions_B = ipmag.fishrot(k=35, n=25, dec=42, inc=57)
      >>> ipmag.common_mean_bootstrap(directions_A, directions_B)
      """
      counter = 0
      BDI1 = pmag.di_boot(Data1)
      cart1 = pmag.dir2cart(BDI1).transpose()
      X1, Y1, Z1 = cart1[0], cart1[1], cart1[2]
      if np.array(Data2).shape[0] > 2:
          BDI2 = pmag.di_boot(Data2)
          cart2 = pmag.dir2cart(BDI2).transpose()
          X2, Y2, Z2 = cart2[0], cart2[1], cart2[2]
      else:
          cart = pmag.dir2cart(Data2).transpose()
  
      fignum = 1
      fig = plt.figure(figsize=figsize)
      fig = plt.subplot(1, 3, 1)
  
      minimum = int(0.025 * len(X1))
      maximum = int(0.975 * len(X1))
  
      X1, y = pmagplotlib.plot_cdf(fignum, X1, "X component", 'r', "")
      bounds1 = [X1[minimum], X1[maximum]]
      pmagplotlib.plot_vs(fignum, bounds1, 'r', '-')
      if np.array(Data2).shape[0] > 2:
          X2, y = pmagplotlib.plot_cdf(fignum, X2, "X component", 'b', "")
          bounds2 = [X2[minimum], X2[maximum]]
          pmagplotlib.plot_vs(fignum, bounds2, 'b', '--')
      else:
          pmagplotlib.plot_vs(fignum, [cart[0]], 'k', '--')
      plt.ylim(0, 1)
      plt.locator_params(nbins=x_tick_bins)
  
      plt.subplot(1, 3, 2)
  
      Y1, y = pmagplotlib.plot_cdf(fignum, Y1, "Y component", 'r', "")
      bounds1 = [Y1[minimum], Y1[maximum]]
      pmagplotlib.plot_vs(fignum, bounds1, 'r', '-')
      if np.array(Data2).shape[0] > 2:
          Y2, y = pmagplotlib.plot_cdf(fignum, Y2, "Y component", 'b', "")
          bounds2 = [Y2[minimum], Y2[maximum]]
          pmagplotlib.plot_vs(fignum, bounds2, 'b', '--')
      else:
          pmagplotlib.plot_vs(fignum, [cart[1]], 'k', '--')
      plt.ylim(0, 1)
  
      plt.subplot(1, 3, 3)
  
      Z1, y = pmagplotlib.plot_cdf(fignum, Z1, "Z component", 'r', "")
      bounds1 = [Z1[minimum], Z1[maximum]]
      pmagplotlib.plot_vs(fignum, bounds1, 'r', '-')
  
      if np.array(Data2).shape[0] > 2:
          Z2, y = pmagplotlib.plot_cdf(fignum, Z2, "Z component", 'b', "")
          bounds2 = [Z2[minimum], Z2[maximum]]
          pmagplotlib.plot_vs(fignum, bounds2, 'b', '--')
      else:
          pmagplotlib.plot_vs(fignum, [cart[2]], 'k', '--')
      plt.ylim(0, 1)
      plt.locator_params(nbins=x_tick_bins)
  
      plt.tight_layout()
      if save == True:
          plt.savefig(os.path.join(
              save_folder, 'common_mean_bootstrap') + '.' + fmt)
      plt.show()