Mike Bostock の d3.js 例を基にしています
多くの場合、次のようなシンプルな要件を満たしたいだけです。
暗い背景では Lightness の範囲を別に設定する必要があります。それでも Chroma と Lightness の幅を狭く保つという方針は変わりません。
一貫性を保つには、背景と程よくコントラストのある Lightness 範囲を選びます。内容を読ませるには十分なコントラストが必要ですが、派手になりすぎないよう背景と近い明るさにとどめます。
このプリセットはわずかに色味を帯びたグレーを作り出します。Chroma の上限をかなり低く設定することで実現できます。 彩度の高い色で視線が散るのを避けたいときに便利です。
色空間を絞るほど、得られる色数は少なくなります。 Chroma の幅が狭いので、Lightness は広めに確保して差をつけます。どの色もグレー寄りになるため、明るさで見分ける必要があるからです。
このプリセットでは Chroma を高め、色のインパクトを最大化しています。かなり強烈な色合いになります。 Chroma と Lightness の範囲を広く取っているため、より多くの色を区別できます。
青〜紫が多く、緑が少なく黄色がないことに気付くかもしれません。これは人間の知覚特性によるもので、設定した最大 Lightness では黄色が許容されないためです。
Chroma の範囲はそのままに、Lightness を大幅に明るくしたバリエーションです。 その結果、黄色や緑が増え、紫が減り赤は現れません。これも CIE Lab 色空間を使うことによる副作用です。
Hue の範囲を絞ると、同系色のバリエーションが得られます。 緑系だけを選べば、異なる緑だけで構成されたパレットになります。 バリエーションを確保するには Lightness と Chroma の幅を広く取りますが、Chroma を低くしすぎるとグレーになるので避けます。 また暗色や明色も抑え、全体の調和を保ちます。
色空間に十分な余裕があれば、大きなパレットも構築できます。 ここでは白背景に黒文字という前提で暗色を避け、全体の調和を保つために高 Chroma も抑えています。 高 Chroma は色空間の占有が小さいため、パレット全体の制約はそこまで厳しくしていません。
色空間の広さに対して色数が多すぎると、どうしても似た色が入り込んでしまいます。 とはいえ常に区別しやすい順に並ぶので、先頭の色ほどはっきりと異なるようになっています。
色を作りすぎた場合でも、先頭の色だけを使えば安心です。そこには十分な差があります。
こうした極端なケースでは「hard(Force vector)」設定を選んでください。 k-Means(soft)が失敗するような狭い色空間でも、このアルゴリズムなら色を生成できます。