r'''
Plot.

:arguments:

  **x, y** (``list``)
    Coordinates.

:options:

  **units** ([``'absolute'``] | ``'relative'``)
    The type of units in which the coordinates are specified. Relative coordinates correspond to a
    fraction of the relevant axis. If you use relative coordinates, be sure to set the limits and
    scale before calling this function!

  ...
    Any ``plt.plot(...)`` option.

:returns:

  The handle of the ``plt.plot(...)`` command.

def plot(x, y, units='absolute', axis=None, **kwargs):
  r'''
Plot.

:arguments:

  **x, y** (``list``)
    Coordinates.

:options:

  **units** ([``'absolute'``] | ``'relative'``)
    The type of units in which the coordinates are specified. Relative coordinates correspond to a
    fraction of the relevant axis. If you use relative coordinates, be sure to set the limits and
    scale before calling this function!

  ...
    Any ``plt.plot(...)`` option.

:returns:

  The handle of the ``plt.plot(...)`` command.
  '''

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

  # transform
  if units.lower() == 'relative':
    x = rel2abs_x(x, axis)
    y = rel2abs_y(y, axis)

  # plot
  return axis.plot(x, y, **kwargs)