.matplotlibrc y opciones por defecto

Estoy estudiando la biblioteca matplotlib para Python. Estoy empezando a entender algunas de sus complejidades básicas, como la diferencia entre pylab y pyplot, y estoy tratando de replicar y modificar algunos de los ejemplos en la galería.

Una cosa que todavía no entiendo claramente es la función real del archivo de configuración matplotlibrc.

Actualmente utilizo la distribución de 64 bits de WinPython 3.3.5.0 en Windows 7. El archivo .matplotlibrc está en WinPython-64bit-3.3.5.0 \ python-3.3.5.amd64 \ lib \ site-packages \ matplotlib \ mpl-data \ matplotlibrc

Quiero comenzar a cambiar algunas opciones, como la fuente predeterminada, así que la abrí, descubriendo que todas las líneas, excepto una (backend: TkAgg) están comentadas.

Así que me gustaría preguntar desde dónde matplotlib toma todos los valores predeterminados (por ejemplo, las propiedades de las fonts). ¿Hay otro archivo en algún lugar, o están de alguna manera “codificados” en la biblioteca? Gracias.

A juzgar por la documentación y el código en matplotlib\__init__.py en el directorio de paquetes del sitio, puede ver que la ruta de búsqueda para el archivo matplotlibrc es:

 Search order: * current working dir * environ var MATPLOTLIBRC * HOME/.matplotlib/matplotlibrc * MATPLOTLIBDATA/matplotlibrc 

y si no se encuentra ningún archivo en estas rutas, aparece una advertencia:

 warnings.warn('Could not find matplotlibrc; using defaults') 

El archivo matplotlibrc es solo una actualización de los parámetros predeterminados existentes. Estos se pueden encontrar utilizando:

 from matplotlib.rcsetup import defaultParams 

(esto es obviamente en matplotlib/rcsetup.py )

En el archivo __init__.py , matplotlib recorre este diccionario y define el parámetro rc predeterminado que se usará para todos los scripts y códigos:

 rcParamsDefault = RcParams([ (key, default) for key, (default, converter) in \ defaultParams.iteritems() ]) 

Así que si quieres saber los valores por defecto, mira:

 In [4]: import matplotlib In [5]: matplotlib.rcParamsDefault Out[5]: {'agg.path.chunksize': 0, 'animation.bitrate': -1, 'animation.codec': 'mpeg4', 'animation.ffmpeg_args': '', 'animation.ffmpeg_path': 'ffmpeg', 'animation.frame_format': 'png', 'animation.mencoder_args': '', 'animation.mencoder_path': 'mencoder', 'animation.writer': 'ffmpeg', ...