xlabel example python matplotlib

python - example - Lista de todos los backends de matplotlib disponibles



matplotlib title (5)

Aquí hay una modificación del guión publicado anteriormente. Encuentra todos los back-end compatibles, los valida y mide sus fps. En OSX, bloquea Python cuando se trata de tkAgg, por lo que debes utilizarlo bajo tu propia responsabilidad;)

from pylab import * import time import matplotlib.backends import matplotlib.pyplot as p import os.path def is_backend_module(fname): """Identifies if a filename is a matplotlib backend module""" return fname.startswith(''backend_'') and fname.endswith(''.py'') def backend_fname_formatter(fname): """Removes the extension of the given filename, then takes away the leading ''backend_''.""" return os.path.splitext(fname)[0][8:] # get the directory where the backends live backends_dir = os.path.dirname(matplotlib.backends.__file__) # filter all files in that directory to identify all files which provide a backend backend_fnames = filter(is_backend_module, os.listdir(backends_dir)) backends = [backend_fname_formatter(fname) for fname in backend_fnames] print("supported backends: /t" + str(backends)) # validate backends backends_valid = [] for b in backends: try: p.switch_backend(b) backends_valid += [b] except: continue print("valid backends: /t" + str(backends_valid)) # try backends performance for b in backends_valid: ion() try: p.switch_backend(b) clf() tstart = time.time() # for profiling x = arange(0,2*pi,0.01) # x-array line, = plot(x,sin(x)) for i in arange(1,200): line.set_ydata(sin(x+i/10.0)) # update the data draw() # redraw the canvas print(b + '' FPS: /t'' , 200/(time.time()-tstart)) ioff() except: print(b + " error :(")

El nombre actual de backend es accesible a través de

>>> import matplotlib.pyplot as plt >>> plt.get_backend() ''GTKAgg''

¿Hay alguna manera de obtener una lista de todos los backends que se pueden usar en una máquina en particular?


Está la lista de código fijo mencionada por Sven, pero para encontrar todos los back-end que Matplotlib puede usar (en base a la implementación actual para configurar un backend) la carpeta matplotlib / backends puede ser inspeccionada.

El siguiente código hace esto:

import matplotlib.backends import os.path def is_backend_module(fname): """Identifies if a filename is a matplotlib backend module""" return fname.startswith(''backend_'') and fname.endswith(''.py'') def backend_fname_formatter(fname): """Removes the extension of the given filename, then takes away the leading ''backend_''.""" return os.path.splitext(fname)[0][8:] # get the directory where the backends live backends_dir = os.path.dirname(matplotlib.backends.__file__) # filter all files in that directory to identify all files which provide a backend backend_fnames = filter(is_backend_module, os.listdir(backends_dir)) backends = [backend_fname_formatter(fname) for fname in backend_fnames] print backends


Puede consultar la siguiente carpeta para obtener una lista de posibles backends ...

/Library/Python/2.6/site-packages/matplotlib/backends /usr/lib64/Python2.6/site-packages/matplotlib/backends


Puedes acceder a las listas

matplotlib.rcsetup.interactive_bk matplotlib.rcsetup.non_interactive_bk matplotlib.rcsetup.all_backends

el tercero es la concatenación de los dos anteriores. Si leo correctamente el código fuente, esas listas están codificadas, y no te dicen qué backends son realmente utilizables. También hay

matplotlib.rcsetup.validate_backend(name)

pero esto también solo se compara con la lista codificada.


También puede ver algunos documentos para algunos backends aquí:

http://matplotlib.org/api/index_backend_api.html

las páginas enumeran solo algunos backends, algunos de ellos no tienen una documentación adecuada:

matplotlib.backend_bases matplotlib.backends.backend_gtkagg matplotlib.backends.backend_qt4agg matplotlib.backends.backend_wxagg matplotlib.backends.backend_pdf matplotlib.dviread matplotlib.type1font