code: def smooth_hue_palette(scale):
    
    # http://en.wikipedia.org/wiki/HSL_and_HSV#From_HSL
    # Based on http://stackoverflow.com/a/17382854 , with simplifications and
    # optimizations. Assumes S=1, L=0.5, meaning C=1 and m=0.
    # 0 stays black, everything else moves into a hue.
  
    # Some initial values and scaling. Check wikipedia for variable meanings.
    array = numpy.arange(scale)
    h = array * (6 / scale)  # range of [0,6)
    x = 255 * (1 - numpy.absolute(numpy.mod(h, 2) - 1))
    c = 255
  
    # Initialize outputs to zero/black
    out = numpy.zeros(h.shape + (3,), float)
    r = out[..., 0]
    g = out[..., 1]
    b = out[..., 2]
  
    mask = (0 < h) & (h < 1)
    r[mask] = c
    g[mask] = x[mask]
  
    mask = (1 <= h) & (h < 2)
    r[mask] = x[mask]
    g[mask] = c
  
    mask = (2 <= h) & (h < 3)
    g[mask] = c
    b[mask] = x[mask]
  
    mask = (3 <= h) & (h < 4)
    g[mask] = x[mask]
    b[mask] = c
  
    mask = (4 <= h) & (h < 5)
    r[mask] = x[mask]
    b[mask] = c
  
    mask = 5 <= h
    r[mask] = c
    b[mask] = x[mask]
  
    return out
docs: Takes an array of ints and returns a corresponding colored rgb array.