def METHOD_NAME(
        origins, endpoints, projection='3d', ax=None, set_ax=True, **kwargs):
    """Plot vectors from their origins (x, y, z) to their endpoints (u, v, w).
    Parameters
    ----------
    origins : array_like, shape (N, 3) or (3,)
        The coordinates of the origins of the vectors.
    endpoints : array_like, shape (N, 3) or (3,)
        The coordinates of the endpoints of the vectors.
    projection : '3d', 'ortho'
        Projection to be used for the plot. Only three-dimensional projections
        are supported.
    ax : matplotlib.axis (optional)
        If no axis is defined, a new axis in a new figure is created.
    set_ax: boolean
        Set the limits of the axis according to the points in coordinates. The
        default is True.
    **kwargs :
        Additional key value arguments are passed to matplotlib.pyplot.quiver.
    Returns
    ax : matplotlib.axes
        The axis used for the plot.
    """
    origins = np.atleast_2d(origins).astype(np.float64)
    endpoints = np.atleast_2d(endpoints).astype(np.float64)
    min_val = min(np.min(origins), np.min(endpoints))
    max_val = max(np.max(origins), np.max(endpoints))
    # plot with plotstyle
    with pf.plot.context():
        ax = _setup_axes(
            projection, ax, set_ax, bounds=(min_val, max_val), **kwargs)
        ax.METHOD_NAME(*origins.T, *endpoints.T, **kwargs)
    return ax