Jeśli ustawię mój backend na template
in ~/.matplotlib/matplotlibrc
, mogę odtworzyć twoje objawy:
~ / .matplotlib / matplotlibrc:
# backend : GtkAgg
backend : template
Zauważ, że plik matplotlibrc
może nie znajdować się w katalogu ~/.matplotlib/
. W tym przypadku poniższy kod pokazuje, gdzie to jest:
>>> 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()
Jeśli edytujesz ~/.matplotlib/matplotlibrc
i zmienisz zaplecze na coś podobnego GtkAgg
, powinieneś zobaczyć wykres. Możesz wyświetlić listę wszystkich backendów dostępnych na twoim komputerze za pomocą
import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)
Powinien zwrócić listę taką jak:
['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']
Odniesienie:
ImportError: No module named _backend_gdk
~/.config/matplotlib/matplotlibrc
(przynajmniej dla Pythona 3). Właśnie miałem powiązany problem i myślę, że był on spowodowany użyciem matplotlib w Pythonie 2.7, który utworzył~/.matplotlib/
katalog i zatrzymał Python 3 przed wczytaniem konfiguracji~/.config/matplotlib/
. Usunięcie~/.matplotlib/
rozwiązało problem.Napotkałem dokładnie ten sam problem na Ubuntu 12.04, ponieważ zainstalowałem matplotlib (w ramach virtualenv) używając
Krótko mówiąc, radzę: nie próbuj instalować matplotlib za pomocą pip lub ręcznie; pozwól prawdziwemu menedżerowi pakietów (np. apt-get / synaptic) zainstalować go i wszystkie jego zależności za Ciebie.
Niestety, backendy matplotlib (alternatywne metody rzeczywistego renderowania twoich wykresów) mają różnego rodzaju zależności, z którymi pip nie poradzi sobie. Co gorsza, cicho zawodzi; to znaczy
pip install matplotlib
wygląda na to, że pomyślnie zainstalował matplotlib. Ale kiedy spróbujesz go użyć (np.pyplot.show()
), Nie pojawi się żadne okno wykresu. Wypróbowałem wszystkie różne backendy, które sugerują ludzie w sieci (Qt4Agg, GTK itp.) I wszystkie zawiodły (tj. Kiedy próbowałem zaimportować matplotlib.pyplot, otrzymuję,ImportError
ponieważ próbuje zaimportować brakującą zależność). Następnie zbadałem, jak zainstalować te zależności, ale po prostu chciałem zrezygnować z używania pip (w ramach virtualenv) jako realnego rozwiązania instalacyjnego dla dowolnego pakietu, który ma zależności od pakietów innych niż Python.Całe to doświadczenie sprawiło, że przeszedłem z powrotem do apt-get / synaptic (tj. Menedżera pakietów Ubuntu), aby zainstalować oprogramowanie takie jak matplotlib. To działało doskonale. Oczywiście oznacza to, że możesz zainstalować tylko w katalogach systemowych, bez dobroci virtualenv, i utkniesz z wersjami, które dystrybuuje Ubuntu, które mogą być daleko w tyle za obecną wersją ...
źródło
--system-site-packages
opcji?pip install
jestagg
. Nie jestem pewien dlaczego, ale możesz to zmienić zgodnie z odpowiedzią unutbu.pip
ma tę główną zaletę, że instaluje aktualną wersję -apt
instaluje przestarzałą wersję. Czasami są poprawki błędów / nowe funkcje, które chcesz / potrzebujesz.virtualenv
zadziałała! Udało mi się zainstalować matplotlib 1.4 ze źródła w całym systemie (na Ubuntu), ale nie poniżejvirtualenv
.% matplotlib inline
U mnie praca z notatnikiem, dodanie powyższej linii przed działaniem fabuły.
źródło
%pylab inline
na moim notebooku, jak zauważył @Bhanu Pratap SinghDla przyszłego odniesienia,
Napotkałem ten sam problem - pylab nie wyświetlał się pod ipythonem. Problem został rozwiązany przez zmianę pliku konfiguracyjnego ipython {ipython_config.py}. W pliku konfiguracyjnym
c.InteractiveShellApp.pylab = 'auto'
Zmieniłem „auto” na „qt” i teraz widzę wykresy
źródło
agg
, nie sądzę, że%pylab inline
będzie działać, ani wykresy nie pokażą się, gdy uruchomisz skrypty bezpośrednio, tjpython myscript.py
. : . Odpowiedź unutbu powinna naprawić to wszędzie.Wystarczy wpisać:
plt.ion()
Zobacz https://www.youtube.com/watch?v=1zmV8lZsHF4 o 23:30!
plt
jest używany z powodu mojego importu:import matplotlib.pyplot
as pltUżywam python2.7 na komputerze Mac z iTerm2.
źródło
To, co rozwiązało mój problem, to po prostu użycie poniższych dwóch wierszy w notatniku ipython u góry
I zadziałało. Używam Ubuntu16.04 i ipython-5.1
źródło
%pylab inline
sprawia, że działa.Musiałem zainstalować matplotlib ze źródła, aby to zadziałało. Najważniejsze instrukcje (z http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ ) to:
Zmieniając backend, jak mówi @unutbu, po prostu napotkałem dużo więcej problemów, ponieważ wszystkie różne backendy również nie działały.
źródło
Dodanie następujących dwóch wierszy przed zaimportowaniem pylab wydaje mi się działać
źródło
Upewnij się, że masz włączony ten skrypt startowy: (Preferencje> Konsola> Opcje zaawansowane)
Jeśli włączony jest standardowy PYTHONSTARTUP, nie będziesz mieć interaktywnego wykresu
źródło
Podobnie jak @Rikki, rozwiązałem ten problem, aktualizując za
matplotlib
pomocąpip install matplotlib --upgrade
. Jeśli nie możesz uaktualnić, odinstalowanie i ponowna instalacja może działać.źródło
U mnie problem występuje, gdy po prostu utworzę pusty
matplotlibrc
plik w~/.matplotlib
systemie macOS. Dodanie „backend: macosx” w nim rozwiązuje problem.Myślę, że to błąd: jeśli
backend
nie jest określony w moimmatplotlibrc
, powinien przyjąć wartość domyślną.źródło
Po uruchomieniu kodu dołącz:
źródło
Odkryłem, że potrzebuję
window = Tk()
i wtedywindow.mainloop()
źródło
W przypadku Ubuntu 12.04:
źródło