Stylen mit Cycler #

Demo von benutzerdefinierten Eigenschaftszykluseinstellungen zum Steuern von Farben und anderen Stileigenschaften für mehrzeilige Diagramme.

Notiz

Eine vollständigere Dokumentation der cyclerAPI finden Sie hier .

Dieses Beispiel zeigt zwei verschiedene APIs:

  1. Festlegen des rc-Parameters, der den standardmäßigen Eigenschaftszyklus angibt. Dies wirkt sich auf alle nachfolgenden Achsen aus (jedoch nicht auf bereits angelegte Achsen).

  2. Festlegen des Eigenschaftszyklus für ein einzelnes Achsenpaar.

from cycler import cycler
import numpy as np
import matplotlib.pyplot as plt

Zuerst generieren wir einige Beispieldaten, in diesem Fall vier versetzte Sinuskurven.

x = np.linspace(0, 2 * np.pi, 50)
offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False)
yy = np.transpose([np.sin(x + phi) for phi in offsets])

Hat jetzt yyForm

print(yy.shape)
(50, 4)

So erhalten Sie die -te Offset-Sinuskurve. Lassen Sie uns die Standardeinstellung mit festlegen . Wir kombinieren einen Color Cycler und einen Linestyle Cycler, indem wir ( ) zwei zusammenfügen. Weitere Informationen zum Kombinieren verschiedener Cycler finden Sie weiter unten in diesem Tutorial.yy[:, i]iprop_cyclematplotlib.pyplot.rc()+cycler

default_cycler = (cycler(color=['r', 'g', 'b', 'y']) +
                  cycler(linestyle=['-', '--', ':', '-.']))

plt.rc('lines', linewidth=4)
plt.rc('axes', prop_cycle=default_cycler)

Jetzt erzeugen wir eine Figur mit zwei Achsen, eine über der anderen. Auf der ersten Achse zeichnen wir mit dem Standard-Cycler. Auf der zweiten Achse setzen wir prop_cycleusing matplotlib.axes.Axes.set_prop_cycle(), wodurch nur prop_cyclefür diese matplotlib.axes.Axes Instanz gesetzt wird. Wir verwenden einen zweiten cycler, der einen Farb-Cycler und einen Linienbreiten-Cycler kombiniert.

custom_cycler = (cycler(color=['c', 'm', 'y', 'k']) +
                 cycler(lw=[1, 2, 3, 4]))

fig, (ax0, ax1) = plt.subplots(nrows=2)
ax0.plot(yy)
ax0.set_title('Set default color cycle to rgby')
ax1.set_prop_cycle(custom_cycler)
ax1.plot(yy)
ax1.set_title('Set axes color cycle to cmyk')

# Add a bit more space between the two plots.
fig.subplots_adjust(hspace=0.3)
plt.show()
Stellen Sie den Standardfarbzyklus auf rgby ein, Stellen Sie den Farbzyklus der Achsen auf cmyk ein

Einstellung prop_cyclein der matplotlibrcDatei oder Style-Dateien #

Denken Sie daran, dass ein benutzerdefinierter Cycler in Ihrer matplotlibrc Datei oder einer Style-Datei ( style.mplstyle) unter eingestellt werden kann axes.prop_cycle:

axes.prop_cycle : cycler(color='bgrcmyk')

Durch mehrere Eigenschaften radeln #

Sie können Cycler hinzufügen:

from cycler import cycler
cc = (cycler(color=list('rgb')) +
      cycler(linestyle=['-', '--', '-.']))
for d in cc:
    print(d)

Ergebnisse in:

{'color': 'r', 'linestyle': '-'}
{'color': 'g', 'linestyle': '--'}
{'color': 'b', 'linestyle': '-.'}

Sie können Cycler multiplizieren:

from cycler import cycler
cc = (cycler(color=list('rgb')) *
      cycler(linestyle=['-', '--', '-.']))
for d in cc:
    print(d)

Ergebnisse in:

{'color': 'r', 'linestyle': '-'}
{'color': 'r', 'linestyle': '--'}
{'color': 'r', 'linestyle': '-.'}
{'color': 'g', 'linestyle': '-'}
{'color': 'g', 'linestyle': '--'}
{'color': 'g', 'linestyle': '-.'}
{'color': 'b', 'linestyle': '-'}
{'color': 'b', 'linestyle': '--'}
{'color': 'b', 'linestyle': '-.'}

Galerie generiert von Sphinx-Gallery