Matplotlib.Pyplot nicht zeigen-Ausgang; Kein Fehler
Meine Plattform ist wie folgt
Centos 6.x (VirtualBox VM läuft auf Win-7-host),
Python 2.6.6,
Matplotlib 1.3.1,
Numpy 1.8.0,
Scipy 0.14.0.dev-bb608ba
Ich bin mit den unten 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()
Aber keine Ausgabe plot erscheint. Ich erhalte keine Fehler, also immer schwierig zu Debuggen.
Folgenden sind die rc-Datei ein Standort-und backend für meine matplotlib installation
[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'
Muss ich ändern mein 'agg' backend 'Qt4Agg' oder etwas anderes? Braucht es nicht mich zu ändern Sie die rc-Datei?
Hinweis: ich habe meine matplotlibrc-Datei zu haben, nur backend : agg
. Die anderen Parameter sind auf Kommentar gesetzt.
Gemäß nachstehenden Kommentare, habe ich versucht, die Installation von libpng aber vor die folgende Fehlermeldung:
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
Habe ich nun erfolgreich installiert, eine stabile und funktionierende duo von libpng-1.5.9/zlib-1.2.7 statt der bisherigen instabilen Versionen libpng-1.6.6/zlib-1.2.8 und die beiden libs sind erfolgreich installiert.
Aber obwohl er ein funktionierendes und stabiles libpng, ich kann Sie nicht öffnen Sie die png-Datei wird erzeugt durch den python-code (S. oben). Gibt es eine spezifische Konfiguration von Einstellungen für die VMs zu öffnen .png-Dateien? Wie genau kann .png-Dateien können geöffnet werden auf Linux-VMs auf WIndows-host?
- es funktionierte für mich auf Matplotlib 1.3.1, numpy 1.7.1, Python 2.7 64-bit...
- Funktioniert auf einem windows-Rechner.
- Es funktioniert auf Win7, Python 2.7 32bit Numpy 1.7.1 Matplotlib 1.2.1... Wird ein Fenster erscheinen, aber Sie haben kein Grundstück? Oder ist überhaupt nichts passiert?
- keine Fenster erscheint. Ich bin laufen auf der VirtualBox-VM läuft Centos 6.x auf host Win 7
- Kein Fehler oder keine Nachricht. Damit ja nichts passiert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ersten Schritt im debugging-dieser ist zu ersetzen
plt.show()
durchplt.savefig('foo.png')
. Wenn es funktioniert, ist das problem wahrscheinlich mit dem backend:Versuchen Sie, die Umstellung backends und sehen, ob das hilft:
Wie schaltet backends in matplotlib /Python
Wenn das nicht hilft entweder, stellen Sie sicher, dass alle Abhängigkeiten (http://matplotlib.org/users/installing.html) --- ich würde einfach neu installieren aus dem Quellcode. (nicht
pip install matplotlib
)su -c "yum-builddep python-matplotlib"
? eigentlich, bevor matplotlib installieren, die ich installiert hattelibpng-devel freetype-devel
aber das ist vielleicht nur für die Entwicklung (von stackoverflow.com/questions/9829175/...) . Kann sein, libpng und freetype sind nicht installiert, Das ist der Grund, warumplt.savefig('hist.png')
können nicht geöffnet werdenIch habe genau das gleiche problem. Allerdings, das war mein Update nach ein wenig recherche:
Ändern Sie die erste und einzige unkommentierte einstellen (als Standard) in Zeile 32:
Ich hatte mal ein ähnliches problem. Ich löste es durch hinzufügen der folgenden Zeilen unmittelbar nach
import matplotlib.pyplot as plt
und nach jedem folgendenplt.show()
: