Returns a list of colors with the same distributed spread as used in ggplot2 (color wheel) but shaken up a little
       so that adjacent series have differing hues for larger values of n.

def get_spaced_plot_colors(n, start = 45, saturation_adjustment = 0.7, saturation = 0.65, lightness = 1.0, prefix = ''):
    '''Returns a list of colors with the same distributed spread as used in ggplot2 (color wheel) but shaken up a little
       so that adjacent series have differing hues for larger values of n.'''

    assert (n > 0)
    if n <= 5:
        # For small n, the color wheel will generate colors which naturally differ
        return ggplot_color_wheel(n, start = start, saturation_adjustment = saturation_adjustment, saturation = saturation, lightness = lightness, prefix = prefix)
    else:
        # For larger values of n, generate n colors spaced
        plot_colors = ggplot_color_wheel(n, start = start, saturation_adjustment = saturation_adjustment, saturation = saturation, lightness = lightness, prefix = prefix)
        hp = dumb_relative_half_prime(n)
        color_wheel = [plot_colors[x % n] for x in range(0, hp * n, hp)]
        if not len(color_wheel) == len(set(color_wheel)):
            raise Exception('The color wheel was not generated correctly. Are {0} and {1} relatively prime?'.format(n, hp))
        return color_wheel