docs: def plot_triaxial_descent_ascent(Ax, Az, des, asc):
      '''Plot triaxial accelerometer data for whole deployment, descents, and
      ascents
  
      Only x and z axes are ploted since these are associated with stroking
  
      Args
      ----
      Ax: ndarray
          X-axis acclerometer data array
      Az: ndarray
          Z-axis acclerometer data array
      des: ndarray
          boolean mask for slicing descent phases of dives from tag dta
      asc: ndarray
          boolean mask for slicing asccent phases of dives from tag dta
      '''
      import numpy
  
      from . import plotutils
  
      fig, ((ax1, ax3), (ax2, ax4)) = plt.subplots(2, 2, sharex=True, sharey=True)
  
      # Convert boolean mask to indices
      des_ind = numpy.where(des)[0]
      asc_ind = numpy.where(asc)[0]
  
      cols = [('x', Ax, [ax1, ax2]),
              ('z', Az, [ax3, ax4])]
  
      for label, data, axes in cols:
          axes[0].title.set_text('Whole {}'.format(label))
          axes[0].plot(range(len(data)), data, color=_colors[0],
                       linewidth=_linewidth, label='{}'.format(label))
  
          axes[1].title.set_text('Descents & Ascents {}'.format(label))
          axes[1] = plotutils.plot_noncontiguous(axes[1], data, des_ind,
                                                 color=_colors[1],
                                                 label='descents')
          axes[1] = plotutils.plot_noncontiguous(axes[1], data, asc_ind,
                                                 color=_colors[2],
                                                 label='ascents')
          axes[1].legend(loc='upper right')
  
      plt.show()
  
      return None