2009-12-30 26 views
33

¿Hay alguna manera de cambiar el color de un eje (no las marcas) en matplotlib? He estado buscando en los documentos Axes, Axis y Artist, pero no tuve suerte; la galería matplotlib tampoco tiene ninguna pista. ¿Alguna idea?Matplotlib: Cambiando el color de un eje

Respuesta

61

Al utilizar figuras, puede cambiar fácilmente el color de la columna vertebral 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') 

la siguiente manera para cambiar sólo las garrapatas:

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

Y lo siguiente para cambiar sólo el etiqueta:

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

Y, finalmente, el título:

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

¡Excelente respuesta, gracias! Solo una nota para cualquier otra persona: '' ax.tick_params (axis = 'x', colors = 'red', which = 'both') '' - which = "both" cambia los colores de tick mayor y menor. – kinverarity

+0

'ax.tick_params (axis = 'x', colors = 'red')' parece cambiar el color de la marca y la etiqueta ... – Jonathan

+0

¿Es posible usar 'ax.yaxis.label.set_color (' gray ') 'de tal manera que solo los tics de' y1' a 'y2' cambian su color, y los otros permanecen inalterados? – FaCoffee

16

Para el registro, así es como me las arreglé para hacer que funcione:

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, mucho mejor que usar el rc global. – Mark

+0

gracias por esto, afortunadamente matplotlib agregará una forma más simple de lograr esto. – jhanifen

7

usted puede hacerlo mediante el ajuste de la configuración por defecto 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 también tiene un [administrador de contexto] (http://matplotlib.org/users/style_sheets.html#temporary-styling) que permite cambios temporales en los parámetros de rc http://stackoverflow.com/a/41527038/2166823 –

Cuestiones relacionadas