code: def get_axarray_fig_plt(ax_array, nrows=1, ncols=1, sharex=False, sharey=False,
                          squeeze=True, subplot_kw=None, gridspec_kw=None,
                          **fig_kw):
      
      import matplotlib.pyplot as plt
  
      if ax_array is None:
          fig, ax_array = plt.subplots(nrows=nrows, ncols=ncols, sharex=sharex,
                                       sharey=sharey, squeeze=squeeze,
                                       subplot_kw=subplot_kw,
                                       gridspec_kw=gridspec_kw, **fig_kw)
      else:
          fig = plt.gcf()
          ax_array = np.reshape(np.array(ax_array), (nrows, ncols))
          if squeeze:
              if ax_array.size == 1:
                  ax_array = ax_array[0]
              elif any(s == 1 for s in ax_array.shape):
                  ax_array = ax_array.ravel()
  
      return ax_array, fig, plt
docs: Helper function used in plot functions that accept an optional array of Axes
      as argument. If ax_array is None, we build the `matplotlib` figure and
      create the array of Axes by calling plt.subplots else we return the
      current active figure.
  
      Returns:
          ax: Array of :class:`Axes` objects
          figure: matplotlib figure
          plt: matplotlib pyplot module.