Ich habe beim Zeichnen festgestellt, dass die erste Zeile blau, dann grün, dann rot und so weiter ist.
Gibt es eine Möglichkeit, auf diese Liste von Farben zuzugreifen? Ich habe eine Million Beiträge darüber gesehen, wie man den Farbzyklus ändert oder auf den Iterator zugreift, aber nicht, wie man nur die Liste der Farben erhält, die matplotlib standardmäßig durchläuft.
matplotlib
Peter
quelle
quelle
lines_colour_cycle = [p['color'] for p in plt.rcParams['axes.prop_cycle']]
plt.rcParams['axes.prop_cycle'].by_key()['color']
Oft ist es nicht erforderlich, den Standardfarbzyklus von irgendwoher abzurufen, da dies der Standardfarbzyklus ist. Daher ist es ausreichend, ihn nur zu verwenden.
Falls Sie wollen verwenden den Standard - Farbzyklus für etwas anderes, gibt es natürlich mehrere Möglichkeiten.
Farbkarte "tab10"
Zunächst sollte erwähnt werden, dass die
"tab10"
Farbkarte die Farben aus dem Standardfarbzyklus enthält, über den Sie sie erhalten könnencmap = plt.get_cmap("tab10")
.Äquivalent zu dem oben genannten wäre daher
Farben aus dem Farbzyklus
Sie können den Farbzyklus auch direkt verwenden
cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']
. Dies gibt eine Liste mit den Farben aus dem Zyklus, über die Sie iterieren können.Die
CN
NotationSchließlich
CN
erlaubt die Notation, dieN
dritte Farbe des Farbzyklus zu erhaltencolor="C{}".format(i)
. Dies funktioniert jedoch nur für die ersten 10 Farben (N in [0,1,...9]
)Alle hier dargestellten Codes erzeugen das gleiche Diagramm.
quelle
CN
Notation sollte in Ihrer Antwort viel wichtiger sein, ich habe sie fast verpasst. Ich vermute, dass die überwiegende Mehrheit der Anwendungsfälle damit zufrieden ist, nur auf die ersten 10 Farben zugreifen zu können, und das Übergeben'C1'
eines Freundes ist weitaus weniger wichtig als das explizite Ergreifen des Requisitenzyklus.Wenn Sie nach einem schnellen Einzeiler suchen, um die RGB-Farben zu erhalten, die matplotlib für seine Linien verwendet, finden Sie hier:
Oder für uint8:
quelle
Die CN-Notation wurde überarbeitet
Ich möchte auf eine neue Entwicklung von Matplotlib eingehen. In einer früheren Antwort haben wir gelesen
aber
gibt
quelle