Как я могу создать в целом эстетически приятный диапазон цветов линейного графика (неизвестный номер), начиная с базового цвета?

Мне нравится алгоритм генерации случайного цвета, предложенный здесь Дэвидом Кроу , но мне интересно, есть ли способ сосредоточить свои результаты вокруг одного цвета и отрегулировать результаты.

Моя программа будет генерировать графики, которые отслеживают несколько переменных. Каждая переменная принадлежит к одной из 7 категорий. Я хотел бы генерировать цвета линий для этих переменных, которые являются разборчивыми, уникальными и для которых оттенок, насыщенность и яркость находятся в пределах приблизительного диапазона корневого цвета, который связан с их категорией. Например, переменные категории Red будут различными разборчивыми и различимыми вариациями на красном.

Одним из решений может быть объявление цвета корня, плюс верхняя и нижняя границы для оттенка, насыщенности и яркости. Затем я мог бы случайным образом вытаскивать значения из этих диапазонов, но есть ли лучший способ для классики в этих трех измерениях, чтобы полученные цвета имели приличное количество вариаций, но все же оставляли пространство для роста? Например, предположим, что каждая труба является значением диапазона, и каждая строка является итерацией:

01 > |---------------|---------------| 02 > |-------|-------|---------------| 03 > |-------|-------|-------|-------| 04 > |---|---|-------|-------|-------| 05 > |---|---|---|---|-------|-------| 06 > |---|---|---|---|---|---|-------| 07 > |---|---|---|---|---|---|---|---| 08 > |-|-|---|---|---|---|---|---|---| 09 > |-|-|-|-|---|---|---|---|---|---| 10 > |-|-|-|-|-|-|---|---|---|---|---| 11 > |-|-|-|-|-|-|-|-|---|---|---|---| 12 > |-|-|-|-|-|-|-|-|-|-|---|---|---| 13 > |-|-|-|-|-|-|-|-|-|-|-|-|---|---| 14 > |-|-|-|-|-|-|-|-|-|-|-|-|-|-|---| 15 > |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-| 

Каков наилучший способ сделать это? Или это даже лучшее решение моей проблемы? Один граф может не содержать более 4 или 5 переменных, но число переменных, которые могут быть построены, может быть в сотнях.

Спасибо за вашу помощь.