Styling con cycler #

Demo delle impostazioni del ciclo di proprietà personalizzate per controllare i colori e altre proprietà di stile per i grafici multilinea.

Nota

Una documentazione più completa cyclerdell'API può essere trovata qui .

Questo esempio mostra due diverse API:

  1. Impostazione del parametro rc che specifica la proprietà predefinita cycle. Questo ha effetto su tutti gli assi successivi (ma non sugli assi già creati).

  2. Impostazione della proprietà ciclo per una singola coppia di assi.

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

Per prima cosa genereremo alcuni dati di esempio, in questo caso quattro curve sinusoidali sfalsate.

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])

Ora yyha forma

print(yy.shape)
(50, 4)

Quindi ti darà la -esima curva sinusoidale offset. Impostiamo l'impostazione predefinita utilizzando . Combineremo un color cycler e un linestyle cycler aggiungendo ( ) due insieme. Vedere la parte inferiore di questo tutorial per ulteriori informazioni sulla combinazione di diversi cycler.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)

Ora genereremo una figura con due assi, uno sopra l'altro. Sul primo asse, tracciamo con il cycler predefinito. Sul secondo asse, imposteremo prop_cycleusing matplotlib.axes.Axes.set_prop_cycle(), che imposterà solo prop_cycleper questa matplotlib.axes.Axes istanza. Useremo un secondo cyclerche combina un color cycler e un linewidth cycler.

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()
Imposta il ciclo di colori predefinito su rgby, imposta il ciclo di colori degli assi su cmyk

Impostazione prop_cyclenel matplotlibrcfile o nei file di stile #

Ricorda, un cycler personalizzato può essere impostato nel tuo matplotlibrc file o in un file di stile ( style.mplstyle) in axes.prop_cycle:

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

Scorrere più proprietà #

Puoi aggiungere ciclisti:

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

Risultati in:

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

Puoi moltiplicare i ciclisti:

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

Risultati 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': '-.'}

Galleria generata da Sphinx-Gallery