チャートやグラフの場合、視覚的に区別できる任意の数の色を手続き的に生成することは、プログラマーにとって比較的一般的な質問です。
人間が区別できる色の数は20万から20百万の間のどこかであると言うさまざまな研究(または経験に基づく推測)が存在します。明らかに、これは人(および色覚異常の存在または程度)によってある程度異なります。ただし、これは人間が2つの色を並べて区別できるかどうかに基づいています。画面に非常に似た色の2つのボックスを配置し、凡例でこれらの色をどこかに繰り返し、どの色がどのボックスに合うかを人間が判断できるかどうかを決定することとは関係ありません。
私は 自分自身調査これに を実行し、ユーザーと一連の色を生成するために ページ を考え出しました-指定可能な視覚的分離。
ただし、私の質問は次のとおりです。グラフの凡例に適切に関連付けることができる、「安全」で「妥当な」数の異なる色を示す調査はありますか?
どの黄色が黄色の線で表されているかわかりますか?
もちろん、色や色の知覚については、非常に多くの研究があります。あなたの目的に最も関連するのは、おそらくCynthia BrewerがColorBrewerで行った作業でしょう。結果のツールは http://colorbrewer2.org/ にあります。元々はマップの色を選択するのに役立つように設計されていましたが、統計グラフにも使用できます(Hadley Wickhamのggplot2パッケージに組み込まれています) R)。
基本的に、それは一種のカラーピッカーですが、色は体系的に選択され(そしていくつかのマップ読み取りタスクでテストされ)、どちらかを表現します
それらはまた、可能な限り区別できるように、コピーを「存続」し、いくつかのタイプの色欠陥のある人々が使用できるように設計されています(ただし、4つ以上の個別のカテゴリーを持つパレットは、色覚異常のテスト参加者には機能しませんでした)。
http://www.personal.psu.edu/cab38/Brewer_pubs.html のトピックに関する彼女の出版物へのいくつかの参照もあります。
最後に、多くの場合、複数の時系列を表示するために色以外の手段を検討することも重要です。 1つの解決策は Tufteのスパークライン またはその小さな倍数(つまり、1つの大きなグラフではなく、多数の小さなグラフを並べて)です。また、下の凡例と一致させるよりも、線をたどる方が多少簡単かもしれません。したがって、凡例をグラフの右側(たとえば、各線の終わり)に配置し、ボックスのどこかに配置しないと、より類似した色で済む場合があります。
StoneSoup ConsultingのMaureen Stoneは、グラフ用の「最適なカラーパレット」を作成しました。 8つの異なる色があり、コントラスト、区別、知覚、色覚異常に合わせて調整されています。彼女はそれらを2つの異なるセットで提供します。1つはカラーの大きなブロック(面グラフや棒グラフなど)用、もう1つは小さな点または色の線(散布図または折れ線グラフ)用です。キャサリン・ローウェルは彼女のブログにそれらを文書化しています: http://ksrowell.com/blog-visualizing-data/2012/02/02/optimal-colors-for-graphs/
8色は理論上の最大値ではないに違いありませんが、明確なデータシリーズを処理する場合は、実際の数です。
より連続的なグラデーションの場合、視覚的な知覚に依存する色合いの違いの知覚には間違いなく限界があり、ある色の範囲では他の色の範囲よりも区別する能力が高くなります。
私に発生するもう1つの質問:色に関係なく、表示できるさまざまなデータシリーズの数は、画面の面積と解像度、クラスタリング/近接性、レイヤリング(同じものの場合に一番上に表示される)などの他の要因に確実に依存します。場所)、それで理論的な最大数の色を見つけて見つけることは実際的ですか?
ユーザーが色覚異常ではないと仮定すると、問題はおそらく色数ではなく、色を選択する方法です。
(色覚異常のユーザーは、線にさまざまなパターンを提供するようにしてください。)
選択した2つすべての色が相互および背景と十分に異なることを確認した場合、色は問題ありません。
つまり選択したすべての色について、背景と比較してから、以前に選択したすべての色と比較します。すべての比較に問題がない場合(十分に異なる場合)、色は問題ありません。
これにより、2つの色が十分に異なるかどうかをテストする方法という質問が生じます。
色に対する標準的な人間の知覚は、結果として カラーキューブ となります。ここで、高さは色の強度です(たとえば、白と黒)。
強度を無視すると、残りは カラートライアングル となり、中心に近づくほど彩度が低く(白が増える)、トライアングルの境界を中心に回転すると、プライムカラー(たとえば、赤、オレンジ、黄色、緑、青、紫)。
色は、さまざまな3D色座標(RGB、YIQ、YUV、CIE-L * ab、CIE-L * CHなど)で表すことができます。
色空間の1つで2つの色の座標を減算し、結果のベクトルの距離を計算すると(例:sqrt(sqr(x1-x2)+ sqr(y1-y2)+ sqr(z1-z2))、違いがわかります2色の間。
違いが大きいほど、それらを区別するのが簡単になります。 (選択する色空間に応じて、距離をテストする定数を決定する必要があります。)
1つの座標が三角形の中心の周りの角度に基づいている色空間を使用する場合、その座標の距離を計算するときに範囲の終わりが最初にループすることを考慮する必要があります。
より知覚的な色空間の使用。 RGBを使用するよりもCIE-L * CHをお勧めします。 (例で指定した色空間は、知覚性の低いものからより知覚性の高いものへと並べ替えられています。)