from PIL import ImageColor | |
# https://sashamaps.net/docs/resources/20-colors/ | |
DISTINCT_COLORS = [ | |
"#e6194b", | |
"#3cb44b", | |
"#ffe119", | |
"#4363d8", | |
"#f58231", | |
"#911eb4", | |
"#46f0f0", | |
"#f032e6", | |
"#bcf60c", | |
"#fabebe", | |
"#008080", | |
"#e6beff", | |
"#9a6324", | |
"#fffac8", | |
"#800000", | |
"#aaffc3", | |
"#808000", | |
"#ffd8b1", | |
"#000075", | |
"#808080", | |
"#ffffff", | |
"#000000", | |
] | |
def get_distinct_color(index: int) -> tuple[float, float, float]: | |
hex = DISTINCT_COLORS[index % len(DISTINCT_COLORS)] | |
return tuple(x / 255 for x in ImageColor.getcolor(hex, "RGB")) | |