それぞれがスペクトル内の異なる場所を指しているデュアル ポインターを試すことができます。少なくともこの方法では、交互の色になってしまいます。
private Color GetSeriesColor( int seriesIndex,
int seriesCount,
int steps ) {
return ColorHelper.FromHsv(
( 360.0 / steps ) * ( 1.0 * seriesIndex / seriesCount ) +
( ( seriesIndex % steps ) * ( 360.0 / steps ) ),
1, 1 );
}
呼び出しコード:
GetSeriesColor( 5, 18, 2 );
これにより、2 つの「ポインター」が作成されます。1 つ目は位置 0 から開始し、2 つ目は位置 180 から開始します。関数は 2 つのポインターを交互に切り替え、グラフに一種の「チェッカーボード」の外観を与えます。
効果が気に入らない場合は、x 個の事前定義された色を含むカラー パレット (配列に格納されている) を使用し、最後に達したときにループする (または、暗い色を明るい色にするなどのシェーディングを追加する) ことをお勧めします。色)。
編集
ただし、色分けを意地悪に使用することは、多くの場合、設計上の選択として不適切であることを付け加えておきます。可能であれば、グラフ上で直接ラベルを使用する方がよいでしょう。約 8 色を超えると、人間の目はそれらを区別するのに苦労し始めます。https://ux.stackexchange.com/questions/17964/how-many-visually-distinct-colors-can-accurately-be-associated-with-a-separateを参照してください。