2009-12-30 5 views
33

C'è un modo per cambiare il colore di un asse (non i segni di graduazione) in matplotlib? Ho esaminato i documenti per Axes, Axis e Artist, ma senza fortuna; anche la galleria matplotlib non ha alcun suggerimento. Qualche idea?Matricola: modifica del colore di un asse

risposta

61

Quando usando le figure, si può facilmente cambiare il colore della colonna vertebrale con:

ax.spines['bottom'].set_color('#dddddd') 
ax.spines['top'].set_color('#dddddd') 
ax.spines['right'].set_color('red') 
ax.spines['left'].set_color('red') 

Utilizzare quanto segue per modificare solo le zecche:

ax.tick_params(axis='x', colors='red') 
ax.tick_params(axis='y', colors='red') 

E quanto segue per modificare solo la etichetta:

ax.yaxis.label.set_color('red') 
ax.xaxis.label.set_color('red') 

E infine il titolo:

ax.title.set_color('red') 
+3

Ottima risposta, grazie! Solo una nota per chiunque altro: '' ax.tick_params (axis = 'x', colors = 'red', which = 'both') '' - which = "both" cambia sia il tick principale che quello secondario. – kinverarity

+0

'ax.tick_params (axis = 'x', colors = 'red')' sembra cambiare il colore sia della spunta che dell'etichetta ... – Jonathan

+0

E 'possibile usare 'ax.yaxis.label.set_color (' grigio ') 'in modo tale che solo i tick da' y1' a 'y2' cambino colore e gli altri rimangano inalterati? – FaCoffee

16

Per la cronaca, questo è come sono riuscito a farlo funzionare:

fig = pylab.figure() 
ax = fig.add_subplot(1, 1, 1) 
for child in ax.get_children(): 
    if isinstance(child, matplotlib.spines.Spine): 
     child.set_color('#dddddd') 
+0

+1, molto meglio dell'utilizzo di rc globale. – Mark

+0

grazie per questo, spero che matplotlib aggiunga un modo più semplice per raggiungere questo obiettivo. – jhanifen

7

si può fare regolando le impostazioni predefinite rc.

import matplotlib 
from matplotlib import pyplot as plt 

matplotlib.rc('axes',edgecolor='r') 
plt.plot([0, 1], [0, 1]) 
plt.savefig('test.png') 
+0

Matplotlib ha anche un [gestore contesto] (http://matplotlib.org/users/style_sheets.html#temporary-styling) che consente modifiche temporanee ai parametri rc http://stackoverflow.com/a/41527038/2166823 –