Есть ли хороший алгоритм для генерации цветов для использования на графиках, таких как линейные / круговые / гистограммы? Практически все графики имеют встроенный список цветов, которые они автоматически присваивают добавляемым элементам. Но иногда вам нужно вручную назначать цвета, и в этом случае вы захотите избежать ручной вставки цветов самостоятельно, что отнимает много времени и, вероятно, приведет к плохим результатам, тогда как алгоритм мог бы сделать это намного лучше.
Сгенерированные цвета должны иметь следующие свойства:
Быть легко отличимыми друг от друга : по мере добавления все большего числа элементов возрастает вероятность путаницы и неправильного толкования. Поэтому важно, чтобы цвета были настолько легко различимы, насколько это возможно, особенно цвета, которые близки друг к другу в списке цветов. Конфликты приемлемы, хотя, очевидно, их желательно избегать.
Сначала содержат классические цвета : когда на графике присутствует несколько элементов, красный, синий, темно-оранжевый, зеленый, серый цвета должны идти в первую очередь, а менее легко различимые - после .
В настоящее время я просто использую список цветов, который где-то нашел, и если у меня больше элементов, чем список цветов, этот список используется повторно, что иногда приводит к коллизиям цветов.
$default_colors = array(
"#4684ee", "#dc3912", "#ff9900", "#008000", "#666666",
"#4942cc", "#cb4ac5", "#d6ae00", "#336699", "#dd4477",
"#aaaa11", "#66aa00", "#888888", "#994499", "#dd5511",
"#22aa99", "#999999", "#705770", "#109618", "#a32929",
);
Есть ли там такая функция? Я посмотрел, но мой Google-фу не был достаточно силен.