Matplotlib.Pyplot no muestra salida; No hay error

Mi plataforma es la siguiente

Centos 6.x (VM de VirtualBox que se ejecuta en el host Win-7), Python 2.6.6, Matplotlib 1.3.1, Numpy 1.8.0, Scipy 0.14.0.dev-bb608ba

Estoy ejecutando el siguiente código histogram.py

#!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt mu, sigma = 0, 1 # mean and standard deviation f = np.random.normal(mu, sigma, 1000) # generate feature-vector with normal distribution # plot the histogram - check the distribution count, bins, ignored = plt.hist(f, 30, normed=True) plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp( - (bins - mu)**2 / (2 * sigma**2) ), linewidth=2, color='r') plt.xlabel('Values') plt.ylabel('Probability') plt.title('Histogram') plt.text(60, .025, r'$\mu=0,\ \sigma=1$') plt.axis([-0.4, 0.3, 0, 5]) plt.grid(True) plt.show() 

Pero no aparece ningún gráfico de salida. No estoy recibiendo ningún error, por lo que es difícil de depurar.

Los siguientes son la ubicación del archivo rc y el backend para mi instalación matplotlib

 [hue@sandbox ~]$ python Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import matplotlib >>> matplotlib.matplotlib_fname() '/usr/lib64/python2.6/site-packages/matplotlib-1.3.1-py2.6-linux-x86_64.egg/matplotlib/mpl-data/matplotlibrc' >>> matplotlib.get_backend() 'agg' 

¿Necesito modificar mi backend ‘agg’ a ‘Qt4Agg’ o algo más? ¿Necesito que modifique el archivo rc?

Nota: revisé mi archivo matplotlibrc para tener solo backend : agg . Resto todos los parámetros están comentados.

Según los siguientes comentarios, intenté instalar libpng pero enfrenté el siguiente error:

 pngfix.o: In function `zlib_reset': /usr/lib/hue/libpng-1.6.6/contrib/tools/pngfix.c:2151: undefined reference to `inflateReset2' collect2: ld returned 1 exit status 

Ahora he instalado con éxito un dúo estable y funcional de libpng-1.5.9 / zlib-1.2.7 en lugar de las versiones inestables anteriores libpng-1.6.6 / zlib-1.2.8 y las dos librerías se han instalado correctamente.

Pero a pesar de tener un libpng funcional y estable, no puedo abrir el archivo png generado por el código python (indicado anteriormente). ¿Hay algún ajuste de configuración específico para que las máquinas virtuales abran archivos .png? ¿Cómo se pueden abrir exactamente los archivos .png en las máquinas virtuales de Linux que se ejecutan en el host de Windows?

El primer paso para depurar esto es reemplazar plt.show() por plt.savefig('foo.png') . Si funciona, lo más probable es que el problema esté en el backend:

 >>> import matplotlib >>> matplotlib.get_backend() 'Qt4Agg' 

Intente cambiar los backends y vea si eso ayuda: Cómo cambiar los backends en matplotlib / Python

Si eso tampoco ayuda, asegúrate de tener todas las dependencias ( http://matplotlib.org/users/installing.html ) — Me gustaría volver a instalar desde la fuente. ( no pip install matplotlib )

Tengo exactamente el mismo problema. Sin embargo, esta fue mi solución después de un poco de investigación:

 sudo yum install PyQt4 sudo gedit file at mpl.matplotlib_fname() 

Cambie la primera y única configuración sin comentarios (por defecto) en la línea 32:

 backend : Qt4Agg 

Una vez tuve un problema similar. Lo resolví agregando estas líneas inmediatamente después de import matplotlib.pyplot as plt y después de cada plt.show() :

 plt.clf() plt.cla() plt.close()