Wenn ich mein Backend auf template
in setze ~/.matplotlib/matplotlibrc
, kann ich Ihre Symptome reproduzieren:
~ / .matplotlib / matplotlibrc:
# backend : GtkAgg
backend : template
Beachten Sie, dass sich die Datei matplotlibrc
möglicherweise nicht im Verzeichnis befindet ~/.matplotlib/
. In diesem Fall zeigt der folgende Code, wo er sich befindet:
>>> import matplotlib
>>> matplotlib.matplotlib_fname()
In [1]: import matplotlib.pyplot as p
In [2]: p.plot(range(20),range(20))
Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>]
In [3]: p.show()
Wenn Sie ~/.matplotlib/matplotlibrc
das Backend bearbeiten und in etwas wie ändern GtkAgg
, sollte ein Plot angezeigt werden. Sie können alle auf Ihrem Computer verfügbaren Backends mit auflisten
import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)
Es sollte eine Liste wie folgt zurückgeben:
['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']
Referenz:
ImportError: No module named _backend_gdk
~/.config/matplotlib/matplotlibrc
(zumindest für Python 3). Ich hatte gerade ein verwandtes Problem und ich denke, es wurde durch die Verwendung von matplotlib in Python 2.7 verursacht, das ein~/.matplotlib/
Verzeichnis erstellt und Python 3 daran gehindert hat, die Konfiguration einzulesen~/.config/matplotlib/
. Das Löschen hat~/.matplotlib/
das Problem für mich behoben.Ich bin unter Ubuntu 12.04 auf genau das gleiche Problem gestoßen, weil ich matplotlib (innerhalb einer virtuellen Umgebung) mit installiert habe
Um es kurz zu machen, mein Rat ist: Versuchen Sie nicht, matplotlib mit pip oder von Hand zu installieren. Lassen Sie es von einem echten Paketmanager (z. B. apt-get / synaptic) und all seinen Abhängigkeiten für Sie installieren.
Leider weisen die Backends von matplotlib (alternative Methoden zum tatsächlichen Rendern Ihrer Plots) alle möglichen Abhängigkeiten auf, mit denen pip nicht umgehen kann. Schlimmer noch, es versagt lautlos; Das heißt,
pip install matplotlib
scheint matplotlib erfolgreich zu installieren. Wenn Sie jedoch versuchen, es zu verwenden (z. B.pyplot.show()
), wird kein Plotfenster angezeigt. Ich habe all die verschiedenen Backends ausprobiert, die die Leute im Web vorschlagen (Qt4Agg, GTK usw.), und sie sind alle fehlgeschlagen (dh ich habe versucht, matplotlib.pyplot zu importieren,ImportError
weil versucht wird, eine fehlende Abhängigkeit zu importieren). Ich habe dann nachgeforscht, wie diese Abhängigkeiten installiert werden können, aber ich wollte einfach aufgeben, pip (innerhalb von virtualenv) als praktikable Installationslösung für jedes Paket zu verwenden, das Nicht-Python-Paketabhängigkeiten aufweist.Die ganze Erfahrung hat mich dazu gebracht, zurück zu apt-get / synaptic (dh dem Ubuntu-Paketmanager) zu kriechen, um Software wie matplotlib zu installieren. Das hat perfekt funktioniert. Das bedeutet natürlich, dass Sie nur in Ihre Systemverzeichnisse installieren können, keine Virtual-Env-Güte, und Sie bleiben bei den von Ubuntu vertriebenen Versionen hängen, die möglicherweise weit hinter der aktuellen Version zurückliegen ...
quelle
--system-site-packages
Option ausprobiert ?pip install
es sindagg
. Ich bin mir nicht sicher warum, aber Sie können es gemäß der Antwort des Unutbu ändern.pip
hat den Hauptvorteil, eine aktuelle Version zuapt
installieren - installiert eine veraltete Version. Manchmal gibt es Fehlerbehebungen / neue Funktionen, die Sie wollen / brauchen.virtualenv
funktioniert! Und ich konnte matplotlib 1.4 systemweit von der Quelle (unter Ubuntu) installieren, aber nicht untervirtualenv
.% matplotlib inline
Wenn ich mit einem Notizbuch arbeite, füge ich die obige Zeile hinzu, bevor der Plot funktioniert.
quelle
%pylab inline
auf meinem Notizbuch verwenden, wie von @Bhanu Pratap SinghZum späteren Nachschlagen,
Ich habe das gleiche Problem festgestellt - Pylab wurde unter Ipython nicht angezeigt. Das Problem wurde behoben, indem die Konfigurationsdatei {ipython_config.py} von ipython geändert wurde. In der Konfigurationsdatei
c.InteractiveShellApp.pylab = 'auto'
Ich habe 'auto' in 'qt' geändert und jetzt sehe ich Grafiken
quelle
agg
, funktioniert das weder%pylab inline
, noch werden Diagramme angezeigt , wenn Sie Skripte direkt ausführen, dh :python myscript.py
. Die Antwort von unutbu sollte es überall beheben.Schreib einfach:
plt.ion()
Siehe https://www.youtube.com/watch?v=1zmV8lZsHF4 um 23:30 Uhr!
plt
wird wegen meines Imports verwendet:import matplotlib.pyplot
als pltIch verwende Python2.7 auf einem Mac mit iTerm2.
quelle
Was mein Problem gelöst hat, war nur die Verwendung der beiden folgenden Zeilen im Ipython-Notizbuch oben
Und es hat funktioniert. Ich benutze Ubuntu16.04 und ipython-5.1
quelle
%pylab inline
funktioniert.Ich musste matplotlib von der Quelle installieren, damit dies funktioniert. Die wichtigsten Anweisungen (von http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ ) sind:
Durch das Ändern des Backends, wie @unutbu sagt, stieß ich auf viele weitere Probleme, da all die verschiedenen Backends auch nicht funktionierten.
quelle
Das Hinzufügen der folgenden zwei Zeilen vor dem Importieren von Pylab scheint für mich zu funktionieren
quelle
Stellen Sie sicher, dass dieses Startskript aktiviert ist: (Einstellungen> Konsole> Erweiterte Optionen)
Wenn das Standard-PYTHONSTARTUP aktiviert ist, haben Sie kein interaktives Diagramm
quelle
Ähnlich wie bei @Rikki habe ich dieses Problem durch ein Upgrade
matplotlib
mit gelöstpip install matplotlib --upgrade
. Wenn Sie kein Upgrade durchführen können, funktioniert möglicherweise die Deinstallation und Neuinstallation.quelle
Für mich tritt das Problem auf, wenn ich unter macOS einfach eine leere
matplotlibrc
Datei unter erstelle~/.matplotlib
. Das Hinzufügen von "backend: macosx" behebt das Problem.Ich denke, es ist ein Fehler: Wenn
backend
in meinem nicht angegebenmatplotlibrc
, sollte es den Standardwert annehmen.quelle
Nach dem Ausführen Ihres Codes gehören:
quelle
Ich fand, dass ich brauchte
window = Tk()
und dannwindow.mainloop()
quelle
Für Ubuntu 12.04:
quelle