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?
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
)
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
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()