2012-03-04 18 views
18

Duplicar posible:
matplotlib does not show my drawings although I call pyplot.show()¿Por qué no funciona pyplot.show()?

yo soy un novato en Matplotlib y se han encontrado con este problema. Estoy usando un sistema Ubuntu. Empecé con Matplotlib 0.99 y me di cuenta de que realmente necesitaba la nueva característica de "triplot" en las versiones más nuevas. Así que descargué la versión más reciente por

git clone git://github.com/matplotlib/matplotlib.git 

y la instalé. Sin embargo, cuando trabajo con python de forma interactiva, pyplot.show() no me muestra la figura que trazo, ni responde con ningún mensaje de error. pyplot.show() funcionó en la versión anterior de matplotlib 0.99.

Para ser más específicos, no parecía tener problemas para importar "matplotlib" o módulos dentro del paquete; Puedo generar archivos PDF de un grupo de figuras, pero simplemente no puedo mostrar la figura escribiendo pyplot.show() al final de mi código. ¿Alguien puede ayudarme? ¡Gracias!

+0

pregunta podría ser similar a la siguiente: http://stackoverflow.com/questions/7534453/matplotlib-does-not-show-my-drawings-although-i-call-pyplot -show –

+0

¿Cómo está ejecutando su programa? Si está en el intérprete de Python interactivo estándar, 'show' no funcionará porque necesita ejecutarse en un hilo separado, y el intérprete interactivo lo bloquea. 'ipython' y otros shells interactivos más avanzados se encuentran en parte por esta razón. (Y tienen un _ton_ de funciones útiles que el intérprete interactivo estándar no tiene.) –

+0

De lo contrario, es posible que no tenga la versión de desarrollo de 'Tk' o cualquier otra biblioteca de GUI instalada, y por lo tanto' matplotlib' no fue capaz de construir el back-end interactivo predeterminado. –

Respuesta

14

que tenían el mismo problema y lo resolvió estableciendo el backend de visualización adecuado, siguiendo matplotlib does not show my drawings although I call pyplot.show()

Hay dos maneras de lograr esto:

1.Set el backend en su código, justo después de la importación matplotlib :

import matplotlib 
matplotlib.rcParams['backend'] = "Qt4Agg" 

2.O definir su back-end dentro de su archivo matplotlibrc (según lo dado por matplotlib.matplotlib_fname()):

backend  : Qt4Agg 

Más información aquí: http://matplotlib.sourceforge.net/users/customizing.html

+0

Me salvaste un montón de tiempo, gracias. – Arty

Cuestiones relacionadas