Matplotlib.Pyplot n'affiche pas la sortie; Aucune Erreur

ma plateforme est comme suit

Centos 6.x (VirtualBox VM tournant sur Win-7 host), Python 2.6.6, Matplotlib 1.3.1, Numpy 1.8.0, Scipy 0.14.0.dev-bb608ba

je suis en cours d'exécution histogram.py code

#!/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()

mais aucun graphique de sortie n'apparaît. Je ne reçois aucune erreur, donc difficile de déboguer.

Voici l'emplacement des fichiers rc et le backend pour mon installation 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'

Dois-je modifier mon agg' revenir sur "Qt4Agg" ou autre chose? Est-ce que je dois modifier le fichier rc?

Note: j'ai vérifié que mon fichier matplotlibrc n'avait que backend : agg. Reste que tous les paramètres sont commentées.

comme dans les commentaires ci-dessous, j'ai essayé d'installer libpng mais face à l'erreur suivante:

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

j'ai maintenant installé avec succès un duo stable et fonctionnel de libpng-1.5.9/zlib-1.2.7 au lieu des précédentes versions instables libpng-1.6.6/zlib-1.2.8 et les deux libs sont installer.

mais malgré un libpng stable et fonctionnel, Je ne peux pas ouvrir le fichier png généré par le code python (donné ci-dessus). Y a-t-il un paramètre de configuration spécifique pour l'ouverture de VMs?des fichiers png? Exactement comment peut .les fichiers png seront-ils ouverts sur les VMs Linux tournant sur l'hôte WIndows?

10
demandé sur somnathchakrabarti 2013-11-01 09:36:52

3 réponses

La première étape de débogage pour remplacer plt.show() par plt.savefig('foo.png'). Si cela fonctionne, le problème est probablement avec le backend:

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

essayez de changer de direction et voyez si cela aide: comment commuter les retours en arrière dans matplotlib / Python

Si cela n'aide pas non plus, assurez-vous d'avoir toutes les dépendances (http://matplotlib.org/users/installing.html) --- je venais de réinstaller à partir de la source. ( pip install matplotlib)

12
répondu ev-br 2017-05-23 12:32:15

je suis d'avoir exactement le même problème. Cependant, c'était ma correction après un peu de recherche:

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

modifier le premier et le seul paramètre non complété (par défaut) à la ligne 32:

backend : Qt4Agg
2
répondu raf 2014-08-28 15:06:39

j'ai déjà eu un problème similaire. Je l'ai résolu en ajoutant ces lignes immédiatement après import matplotlib.pyplot as plt et après chaque plt.show():

plt.clf()
plt.cla()
plt.close()
0
répondu atomh33ls 2013-11-01 12:40:12