2012-02-22 10 views
53

Come posso impostare un set di colori predefinito per i grafici fatti con matplotlib? Posso impostare una particolare mappa a colori come questoCome impostare il ciclo colore predefinito per tutte le sottotrame con Matplotlib?

import numpy as np 
import matplotlib.pyplot as plt 

fig=plt.figure(i) 
ax=plt.gca() 
colormap = plt.get_cmap('jet') 
ax.set_color_cycle([colormap(k) for k in np.linspace(0, 1, 10)]) 

ma c'è un modo per impostare lo stesso insieme di colori per tutti i grafici, tra cui sottotrame?

+0

correlati http://stackoverflow.com/questions/4971269/how-to-pick-a-new-color-for-each-plotted-line-within-a- figura-in-matplotlib –

risposta

65

Sicuro! O specify axes.color_cycle in your .matplotlibrc file o impostarlo in fase di esecuzione utilizzando matplotlib.rcParams o matplotlib.rc.

Come esempio di quest'ultimo:

import matplotlib.pyplot as plt 
import matplotlib as mpl 
import numpy as np 

# Set the default color cycle 
mpl.rcParams['axes.color_cycle'] = ['r', 'k', 'c'] 

# Alternately, we could use rc: 
# mpl.rc('axes', color_cycle=['r','k','c']) 

x = np.linspace(0, 20, 100) 

fig, axes = plt.subplots(nrows=2) 

for i in range(10): 
    axes[0].plot(x, i * (x - 10)**2) 

for i in range(10): 
    axes[1].plot(x, i * np.cos(x)) 

plt.show() 

enter image description here

22

partire da matplotlib 1,5, mpl.rcParams [ 'axes.color_cycle'] è obsoleto. Si dovrebbe usare axes.prop_cycle:

import matplotlib as mpl 
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "#e94cdc", "0.7"]) 
Problemi correlati