2011-01-21 13 views

risposta

73

Come un esempio veloce (utilizzando un metodo leggermente più pulito rispetto alla domanda potenzialmente duplicato):

import matplotlib.pyplot as plt 

fig = plt.figure() 
ax = fig.add_subplot(111) 

ax.plot(range(10)) 
ax.set_xlabel('X-axis') 
ax.set_ylabel('Y-axis') 

ax.spines['bottom'].set_color('red') 
ax.spines['top'].set_color('red') 
ax.xaxis.label.set_color('red') 
ax.tick_params(axis='x', colors='red') 

plt.show() 

alt text

+0

Grazie mille. ax.tick_params (axis = 'x', colors = 'red') produce un AxesSubplot non ha nessun errore 'tick_params'. Sai perché? –

+11

Hmm ... È strano ... Che versione di matplotlib stai usando? Una soluzione alternativa è fare '[t.set_color ('red') per t in ax.xaxis.get_ticklines()]' e '[t.set_color ('red') per t in ax.xaxis.get_ticklabels()]' . –

11

Se si dispone di diverse figure o sottotrame che si desidera modificare, può essere utile utilizzare il matplotlib context manager per cambiare il colore, invece di cambiarli singolarmente. Il gestore del contesto consente di modificare temporaneamente i parametri rc solo per il codice indentato immediatamente successivo, ma non influisce sui parametri globali rc.

Questo snippet produce due cifre, la prima con i colori modificati per l'asse, le tacche e le tabulazioni di selezione e la seconda con i parametri rc predefiniti.

import matplotlib.pyplot as plt 
with plt.rc_context({'axes.edgecolor':'orange', 'xtick.color':'red', 'ytick.color':'green', 'figure.facecolor':'white'}): 
    # Temporary rc parameters in effect 
    fig, (ax1, ax2) = plt.subplots(1,2) 
    ax1.plot(range(10)) 
    ax2.plot(range(10)) 
# Back to default rc parameters 
fig, ax = plt.subplots() 
ax.plot(range(10)) 

enter image description here

enter image description here

È possibile digitare plt.rcParams per visualizzare tutti i parametri rc disponibili, e l'uso di lista per la ricerca per parole chiave:

# Search for all parameters containing the word 'color' 
[(param, value) for param, value in plt.rcParams.items() if 'color' in param] 
Problemi correlati