Wie die Antwort von Ciro zeigt , können Sie prop_cycle
eine Liste von Farben festlegen, durch die matplotlib durchlaufen soll. Aber wie viele Farben? Was ist, wenn Sie denselben Farbzyklus für viele Diagramme mit unterschiedlicher Anzahl von Linien verwenden möchten?
Eine Taktik wäre, eine Formel wie die von https://gamedev.stackexchange.com/a/46469/22397 zu verwenden , um eine unendliche Folge von Farben zu erzeugen, bei der jede Farbe versucht, sich signifikant von allen vorhergehenden zu unterscheiden.
prop_cycle
Akzeptiert leider keine unendlichen Sequenzen - es bleibt für immer hängen, wenn Sie eine übergeben. Wir können jedoch beispielsweise die ersten 1000 Farben, die aus einer solchen Sequenz generiert wurden, als Farbzyklus festlegen. Auf diese Weise sollten Sie für Diagramme mit einer vernünftigen Anzahl von Linien unterscheidbare Farben erhalten.
Beispiel:
from matplotlib import pyplot as plt
from matplotlib.colors import hsv_to_rgb
from cycler import cycler
# 1000 distinct colors:
colors = [hsv_to_rgb([(i * 0.618033988749895) % 1.0, 1, 1])
for i in range(1000)]
plt.rc('axes', prop_cycle=(cycler('color', colors)))
for i in range(20):
plt.plot([1, 0], [i, i])
plt.show()
Ausgabe:
Jetzt sind alle Farben unterschiedlich - obwohl ich zugebe, dass ich Schwierigkeiten habe, einige davon zu unterscheiden!