web-dev-qa-db-de.com

matplotlib zeigt meine Zeichnungen nicht an, obwohl ich pyplot.show () anrufe.

Auf Matplotlib benötigte Hilfe. Ja, ich habe nicht vergessen, die pyplot.show () anzurufen.

$ ipython - pylab

import matplotlib.pyplot as p 
p.plot(range(20), range(20))

Es gibt matplotlib.lines.Line2D at 0xade2b2c als Ausgabe zurück.

p.show()

Es ist nichts zu passieren. Keine Fehlermeldung Kein neues Fenster Nichts. Ich installiere matplotlib mithilfe von pip und habe keine Fehlermeldungen erhalten. 

Einzelheiten:

Ich benutze,

  • Ubuntu
  • IPython v0.11
  • Python v2.6.6
  • matplotlib v1.0.1
141
Baskaya

Wenn ich mein Backend auf template in ~/.matplotlib/matplotlibrc, Gesetzt habe, kann ich Ihre Symptome reproduzieren:

~/.matplotlib/matplotlibrc:

# backend      : GtkAgg
backend      : template

Beachten Sie, dass sich die Datei matplotlibrc möglicherweise nicht im Verzeichnis ~/.matplotlib/ befindet. In diesem Fall zeigt der folgende Code, wo es ist:

>>> 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 bearbeiten und das Backend in etwas wie GtkAgg ändern, sollten Sie eine Darstellung sehen. 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:

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']

Referenz:

156
unutbu

Auf Ubuntu 12.04 bin ich auf dasselbe Problem gestoßen, weil ich matplotlib (innerhalb einer virtualenv) mit installiert habe

pip install matplotlib

Um es kurz zu machen, mein Rat ist: Versuchen Sie nicht, Matplotlib mit Pip oder von Hand zu installieren. Lassen Sie einen echten Paketmanager (z. B. apt-get/synaptic) und alle seine Abhängigkeiten für Sie installieren.

Leider haben matplotlibs Backends (alternative Methoden zum tatsächlichen Rendern Ihrer Plots) alle möglichen Abhängigkeiten, mit denen pip nicht umgehen kann. Schlimmer noch, es versagt still; Das heißt, pip install matplotlib scheint die Matplotlib erfolgreich zu installieren. Wenn Sie 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 gescheitert (d. H. Beim Versuch, matplotlib.pyplot zu importieren, erhalte ich ImportError, weil versucht wird, eine fehlende Abhängigkeit zu importieren). Ich habe dann nachgeforscht, wie man diese Abhängigkeiten installiert, aber ich wollte einfach aufgeben, pip (innerhalb von virtualenv) als praktikable Installationslösung für jedes Paket zu verwenden, das nicht von Python abhängige Abhängigkeiten hat. 

Die ganze Erfahrung brachte mich dazu, zurück zu apt-get/synaptic (d. H. 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 Virtualenv-Güte, und Sie bleiben bei den von Ubuntu vertriebenen Versionen hängen, die möglicherweise weit hinter der aktuellen Version liegen ...

64
Christopher Lee

% matplotlib inline

Wenn ich mit Notebook arbeite, füge ich die obige Zeile hinzu, bevor der Plot funktioniert.

29
grampus

Als zukünftige Referenz

Ich bin auf das gleiche Problem gestoßen - Pylab zeigte sich unter ipython nicht. Das Problem wurde behoben, indem die Konfigurationsdatei von ipython {ipython_config.py} geändert wurde. In der Konfigurationsdatei

c.InteractiveShellApp.pylab = 'auto'

Ich habe 'auto' in 'qt' geändert und jetzt sehe ich Grafiken

9
anon

Tipp einfach:

plt.ion()

Siehe https://www.youtube.com/watch?v=1zmV8lZsHF4 um 23:30!

plt wird wegen meines Imports verwendet: import matplotlib.pyplot als plt

Ich verwende python2.7 auf einem Mac mit iTerm2.

8
tnuts

Was mein Problem gelöst hat, ist die Verwendung der beiden unteren Zeilen in einem ipython-Notebook oben

%matplotib inline
%pylab inline

Und es hat funktioniert. Ich verwende Ubuntu16.04 und ipython-5.1

5

Ich musste matplotlib aus dem Quellcode installieren, damit das funktioniert. Die wichtigsten Anweisungen (von http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ ) sind:

$ workon plotting
$ pip uninstall matplotlib
$ git clone https://github.com/matplotlib/matplotlib.git
$ cd matplotlib
$ python setup.py install

Durch das Ändern des Backends, wie @unutbu sagt, habe ich gerade Probleme mit den verschiedenen Backends, die nicht funktionieren.

2
Rikki

Das Hinzufügen der folgenden zwei Zeilen vor dem Importieren von Pylab scheint für mich zu funktionieren 

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np
2
Pau

Ich fand, dass ich window = Tk() brauchte und dann window.mainloop()

0
R Keene

Nachdem Sie Ihren Code ausgeführt haben, gehören:

import pylab as p
p.show()
0
Shrish Trivedi

Stellen Sie sicher, dass dieses Startskript aktiviert ist: (Voreinstellungen> Konsole> Erweiterte Optionen) 

/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py

Wenn das Standard-PYTHONSTARTUP aktiviert ist, haben Sie keine interaktive Darstellung

0
Covich

Ähnlich wie bei @Rikki habe ich dieses Problem durch ein Upgrade von matplotlib mit pip install matplotlib --upgrade gelöst. Wenn Sie kein Upgrade durchführen können, funktionieren möglicherweise Deinstallation und Neuinstallation.

pip uninstall matplotlib
pip install matplotlib
0
Seanny123