2009-12-30 12 views

Répondre

61

Lorsque vous utilisez les chiffres, vous pouvez facilement changer la couleur de la colonne vertébrale avec:

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

Utilisez ce qui suit pour changer seulement les tiques:

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

Et ce qui suit pour changer seulement Étiquette:

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

Et enfin le titre:

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

Excellente réponse, merci! Juste une note pour quelqu'un d'autre: '' ax.tick_params (axis = 'x', colors = 'red', qui = 'both') '' - which = "both" change les couleurs des majuscules et des mineures. – kinverarity

+0

'ax.tick_params (axis = 'x', colors = 'red')' semble changer la couleur de la coche et de l'étiquette ... – Jonathan

+0

Est-il possible d'utiliser 'ax.yaxis.label.set_color (' gris ') 'de telle sorte que seules les graduations de' y1' à 'y2' changent de couleur et que les autres restent inchangées? – FaCoffee

16

Pour mémoire, voici comment j'ai réussi à le faire fonctionner:

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, beaucoup mieux que d'utiliser le global rc. – Mark

+0

merci pour cela, j'espère que matplotlib va ​​ajouter un moyen plus simple d'y parvenir. – jhanifen

7

Vous pouvez le faire en ajustant les paramètres rc par défaut.

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 dispose également d'un [gestionnaire de contexte] (http://matplotlib.org/users/style_sheets.html#temporary-styling) qui permet de modifier temporairement les paramètres rc http://stackoverflow.com/a/41527038/2166823 –

Questions connexes