Ich empfehle die Verwendung des HSV- oder HSL-Farbraums, nicht des RGB-Farbraums, da HSV und HSL besser strukturiert sind, um Farben zu erzeugen, die für den Menschen anders aussehen. Sie werden mehr Arbeit in RGB haben (obwohl Konvertierungen hin und her existieren, sollten Sie sie brauchen).
So sieht HSV / HSL aus:
Bei Verwendung des HSV- oder HSL-Farbraums kann (sehr grob) davon ausgegangen werden, dass der Unterschied zwischen den H- (Farbton-) Komponenten zweier Farben eine gute Annäherung an den Wahrnehmungsabstand zwischen den Farben darstellt - dh je größer die Änderung des Farbtons ist, desto größer ist der Unterschied Anders sehen die Farben für den Menschen aus. Sie können auch versuchen, mit S (Sättigung) und L / V (Helligkeit / Wert) zu spielen, um ein paar sehr unterschiedliche Farben zu erzielen, aber sie sehen bei der gleichen Wertänderung nicht so unterschiedlich aus wie beim Variieren des Farbtons.
Abhängig von der Anzahl der verschiedenen Farben, die Sie benötigen, können Sie den Farbtonraum in diese Anzahl verschiedener Farben aufteilen. Wenn Sie zum Beispiel einen Farbtonbereich von 256 Werten haben und 16 verschiedene Farben benötigen, kann Ihre erste Farbe (0, 128, 128), Ihre zweite (16, 128, 128) usw. sein. Ich habe hier etwas willkürlich ausgewählte S / L-Werte ausgewählt, da diese normalerweise hell und gesättigt genug sind, um die Farbunterschiede deutlich zu erkennen. Dieses System ist einfach und setzt voraus, dass Sie nichts über die Farbanpassung in Ihrem Diagramm / Ihrer Karte wissen müssen.
Wenn Sie nicht im Voraus wissen, wie viele verschiedene Farben Sie benötigen, aber die Obergrenze kennen, und wenn Sie den Farbtonbereich wie oben beschrieben unter Berücksichtigung dieser Obergrenze in Farben unterteilen, erhalten Sie immer noch gute, wahrnehmungsmäßig unterschiedliche Farben, mit denen Sie dasselbe System verwenden können die Obergrenze.
Wenn Sie sehr viele unterschiedliche Farben benötigen (könnten), könnten Sie trotzdem sehr ähnliche oder sogar dieselben Farben verwenden, solange diese nicht in der Nähe der anderen Elemente des Diagramms erscheinen, die ähnliche Farben aufweisen. Dies setzt voraus, dass Sie Ihre Adjazenzsituation in der Grafik kennen, die Sie rendern, und dass dies möglicherweise nicht immer einfach ist, und selbst dann ist es möglicherweise keine gute Idee, wie Dukeling in den Kommentaren betont: Für die Betrachter kann es verwirrend sein, dass dieselbe Farbe verwendet wird zweimal in der Grafik für zwei verschiedene Konzepte.
Schließlich ist Ihr Diagramm in der komplexesten Situation so komplex, dass Sie nicht über genügend Farbraum verfügen, um sicherzustellen, dass Sie mit dem obigen System keine eindeutigen Elemente mit zu ähnlichen Farben erhalten. In diesem Fall müssen Sie ein Adjazenzdiagramm aus Elementen Ihres Visualisierungsdiagramms erstellen. Adjacency ist hier ein unscharfes Konzept - Sie müssen es für Ihre tatsächliche Situation richtig definieren. Beispiel: In Ihrem zweiten Beispiel haben die Daten vom 12. Juli eine Drosselstelle, an der jede Farbe neben jeder anderen liegt. Ein Ansatz, der Ihnen beim Aufbau des Adjazenzdiagramms helfen kann, ist das Problem der Diagrammfärbung. Es gibt Bibliotheken, die Ihnen helfen können, z. B. boost :: graph in C ++ .