Beim Plotten mit Bokeh, wie Sie automatisch Zyklus durch eine Farbpalette?
Möchte ich eine Schleife verwenden, zu laden und/oder verändern Daten und Plotten Sie das Ergebnis innerhalb der Schleife mit Bokeh (ich bin vertraut mit Matplotlib ist Achsen.color_cycle
). Hier ist ein einfaches Beispiel
import numpy as np
from bokeh.plotting import figure, output_file, show
output_file('bokeh_cycle_colors.html')
p = figure(width=400, height=400)
x = np.linspace(0, 10)
for m in xrange(10):
y = m * x
p.line(x, y, legend='m = {}'.format(m))
p.legend.location='top_left'
show(p)
erzeugt dieses Grundstück
Wie kann ich es so machen das Farben-Zyklus, ohne Code für eine Liste der Farben und eine modulus-operation zu wiederholen, wenn die Anzahl der Farben läuft aus?
Gab es einige Diskussion auf GitHub in diesem Zusammenhang Fragen Drei hundert eins und fünfzig und Zwei tausend zwei hundert eins, aber es ist nicht klar, wie diese Arbeit zu machen. Die vier zuvor bekam ich bei der Suche die Dokumentation für cycle color
wollte eigentlich nicht das Wort enthalten cycle
irgendwo auf der Seite.
- Farbe cycler Paket, entwickelt als Teil der matplotlib, kann nützlich sein für die Erstellung eines Wörterbuchs, die verwendet werden könnte, um den Zyklus mehr als nur die Farbe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es wahrscheinlich am einfachsten Holen Sie sich die Liste der Farben und radeln Sie selbst mit
itertools
:color=next(colors)
zu überspringenzip
.Zwei kleinen änderungen wird vor der Antwort arbeiten für Python 3.
geändert:
for m, color in zip(range(10), colors):
vor:
for m, color in itertools.izip(xrange(10), colors):
Können Sie definieren eine einfache generator, der die Zyklen Farben für Sie.
In python 3:
oder in python 2 (oder 3):
und wenn Sie brauchen eine neue Farbe, tun:
Hier ist das obige Beispiel:
color_gen
Menge Funktionen zu Wrappern aufitertools.cycle
dass nicht wirklich etwas tun.