def rangeFrameLabler(tickLocs, tickLabels, cadence):
    """
    Takes lists of tick positions and labels and drops the marginal text label where the gap between ticks is less than half the cadence value

    :param list tickLocs: List of current tick locations on the axis
    :param list tickLabels: List of tick labels
    :param float cadence: Gap between major tick positions
    :returns: List of tick labels
    :rtype: list
    """
    labels = []

    for i, tick in enumerate(tickLocs):
        if tick == tickLocs[0]:
            labels.append(tickLabels[i])

        elif tick == tickLocs[-1]:
            labels.append(tickLabels[i])

        elif (tick < (tickLocs[0] + (cadence / 2.0))) & (tick < (tickLocs[0] + cadence)):
            labels.append('')

        elif (tick > (tickLocs[-1] - (cadence / 2.0))) & (tick > (tickLocs[-1] - cadence)):
            labels.append('')

        else:
            labels.append(tickLabels[i])

    return labels