make_color_list - jaybgager/tracertools GitHub Wiki

This function generates a list of hexadecimal values spread roughly evenly around a hue wheel based on the number requested. Useful for programmatically generating links for comparing groups of segments that need to be differentiated visually.

Arguments:

  • number_of_colors (integer, mandatory)
    • the number of segments you need colors for
  • alternate_brightness (float, optional, default=0.0)
    • value between 0 and 1 indicating how much to vary the brightness of neighboring colors
    • values close 0 will produce mild variation, those near 1 will approach black and white
    • only affects lists of 11 or more colors, lower numbers use manually-chosen color lists

Returns:

  • colors (list of strings)
    • a list of the requested number of hue-wheel-spaced hexadecimal values

Examples

Default Behavior

INPUT:

import tracertools as tt

hex_colors = tt.make_color_list(
    number_of_colors = 6,
)

print(hex_colors)

OUTPUT:

[
    '#FF5533', 
    '#FF9C33', 
    '#FFDD33', 
    '#A8FFA8', 
    '#469FE3', 
    '#CC85FF'
]

This produces the following colors:

These colors may seem light in value, particularly the green, but they're chosen for use on neuroglancer segments against a black background. The lighter value helps show surface definition with neuroglancer's default lighting engine.

Alternating Brightness

INPUT:

import tracertools as tt

hex_colors = tt.make_color_list(
    number_of_colors = 20,
    alternate_brightness = 0.4,
)

print(hex_colors)

OUTPUT:

[
    '#990000', 
    '#ff9366', 
    '#995b00', 
    '#ffee66', 
    '#7b9900', 
    '#b4ff66', 
    '#209900', 
    '#66ff73', 
    '#00993a', 
    '#66ffce', 
    '#009996', 
    '#66d4ff', 
    '#004099', 
    '#6679ff', 
    '#1a0099', 
    '#ae66ff', 
    '#750099', 
    '#ff66f4', 
    '#990061', 
    '#ff6699'
]

This produces the following colors:

[!NOTE] Large requests (~30+) can result in nearby colors becoming difficult to distinguish. Using odd numbers with the alternate_brightness feature results in the first color's brightness not being adjusted to avoid adjusting it in the same direction as either of its neighbors. The maximum number of hues this function can produce is 1530.