55542
### やりたいこと

下図のようなグラフを、作成したいです。

  * 生徒のテストの点数の推移を折れ線グラフで表示する
  * グラフに表示する生徒は、ユーザが指定できる
  * 生徒は最大100人いるので、折れ線の数は最大100本まで表示できるようにする（100本表示して、意味のあるグラフになるかどうかは気にしない）
  * 生徒ごとに折れ線の色は変える（折れ線の色に、意味があるかは気にしない）

[![画像の説明をここに入力](https://i.stack.imgur.com/DVCf6.png)](https://i.stack.imgur.com/DVCf6.png)

# 質問

100本の線をそれぞれ異なる色にする場合、何か良いアルゴリズムはありますか？  
たとえば色相環を、渦を巻くように外側から内側に色を選択するアルゴリズムがありそうな気がしたので、質問しました。  
特に困ってはおらず、単純な興味としての質問です。

世のグラフツールは、一般的に色は固定されているものなのでしょうか？

[![画像の説明をここに入力](https://i.stack.imgur.com/p0djx.png)](https://i.stack.imgur.com/p0djx.png)

# 補足

[bokehのColor
Palettes](https://bokeh.pydata.org/en/latest/docs/reference/palettes.html)では、最大20色でした。
CC BY-SA 4.0
2019-06-04T17:18:12.880
55525
2019-06-05T04:49:50.160
2019-06-04T17:31:37.637
3060
19524
question
アルゴリズム
グラフの折れ線100本をそれぞれ異なる色にしたい場合、何か良いアルゴリズムはありますか？
９６色色鉛筆が、いくつかのメーカーから発売されています。  
色相、色彩に偏りがないように選ばれた色だと思いますので、参考になると思います。  
（１００色には４色足りませんが）
CC BY-SA 4.0
2019-06-04T23:31:31.940
55528
2019-06-04T23:31:31.940
217
55525
answer
> 100本の線をそれぞれ異なる色にする場合、何か良いアルゴリズムはありますか？

あらゆる[色(color)は3次元情報として表現される](https://ja.wikipedia.org/wiki/%E8%89%B2)ため、全ての色を含む「[3次元の色空間(color
space)](https://ja.wikipedia.org/wiki/%E8%89%B2%E7%A9%BA%E9%96%93)上でなるべく距離が離れるように100点を選ぶ」問題となります。

一般に色相環(hue
circle)とは、[色相(Hue)×彩度(Saturation)×明度(Value)の3次元で表現されるHSV色空間](https://ja.wikipedia.org/wiki/HSV%E8%89%B2%E7%A9%BA%E9%96%93)のうち、彩度と明度を固定して色相だけを変化させたバリエーションを表します。質問中にある色相環は、さらに内周／外周方向に彩度を変化させた拡張版のようです。

このようなHSV色空間や一般に用いられるRGB色空間では、任意の色を2つ選んだときに「ヒトが知覚する色の差」が均等でないという問題があります。この問題を解決（緩和）した均等色空間(UCS;Uniform
Color
Space)という色の表現モデルがいくつか存在するため、何らかの「UCS上でなるべく距離が離れた100点を選択」すれば望みの結果が得られると思います。

> 世のグラフツールは、一般的に色は固定されているものなのでしょうか？

一定のルール・パターンに基づいて色グループを決めることが多いと思います。その方が人間にとって心地よい・調和がとれていると感じるためです。

* * *

現実問題としては、100色もの色を区別できる人は皆無と思われます。質問中にある用途であれば、グラフ本体と凡例間で色によるマッチングも必要とされますから、10色でも実用には厳しい気はします（"見ずらい"グラフが出来上がりそう）。
CC BY-SA 4.0
2019-06-05T04:49:50.160
55542
2019-06-05T04:49:50.160
49
55525
answer