r'''
Set limits the the floor/ceil values in terms of decades.

:options:

  **axis** ([``plt.gca()``] | ...)
    Specify the axis to which to apply the limits.

  **direction** ([``None``] | ``'x'`` | ``'y'``)
    Limit the application to a certain direction (default: both).

def set_decade_lims(axis=None,direction=None):
  r'''
Set limits the the floor/ceil values in terms of decades.

:options:

  **axis** ([``plt.gca()``] | ...)
    Specify the axis to which to apply the limits.

  **direction** ([``None``] | ``'x'`` | ``'y'``)
    Limit the application to a certain direction (default: both).
  '''

  # get current axis
  if axis is None:
    axis = plt.gca()

  # x-axis
  if direction is None or direction == 'x':
    # - get current limits
    MIN,MAX = axis.get_xlim()
    # - floor/ceil to full decades
    MIN = 10 ** ( np.floor(np.log10(MIN)) )
    MAX = 10 ** ( np.ceil (np.log10(MAX)) )
    # - apply
    axis.set_xlim([MIN,MAX])

  # y-axis
  if direction is None or direction == 'y':
    # - get current limits
    MIN,MAX = axis.get_ylim()
    # - floor/ceil to full decades
    MIN = 10 ** ( np.floor(np.log10(MIN)) )
    MAX = 10 ** ( np.ceil (np.log10(MAX)) )
    # - apply
    axis.set_ylim([MIN,MAX])