def label(field):
    """Return a label for a data field suitable for use on a graph axis.

    This returns the attribute 'long_name' if it exists, or the field name,
    followed by the units attribute if it exists.
    
    Parameters
    ----------
    field : NXfield
        NeXus field used to construct the label.
    
    Returns
    -------
    str
        Axis label.
    """
    if 'long_name' in field.attrs:
        return field.long_name
    elif 'units' in field.attrs:
        return '%s (%s)' % (field.nxname, field.units)
    else:
        return field.nxname
