def df_to_joints(df):
    """ Return joint names from list of degrees of freedom. List of joint names is sorted alphabetically.
    
    :param df: List of degrees of freedom like ["joint.x",].
    :type df: list
    :return: Joint names.
    :rtype: list
    """
    joints = sorted(set((x.split('.')[0] for x in df if x != 'time')))
    return joints