Jestem nowym użytkownikiem matplotlib, moja platforma to Ubuntu 10.04 Python 2.6.5
To jest mój kod
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.plot([1,2,3])
Błąd:
/usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py:41: UserWarning:
Your currently selected backend, 'agg' does not support show().
Please select a GUI backend in your matplotlibrc file ('/usr/local/lib/python2.6/dist-packages/matplotlib/mpl-data/matplotlibrc')
or with matplotlib.use()
(backend, matplotlib.matplotlib_fname()))
- Zainstalowałem bibliotekę Anti-Grain Geometry,
apt-get install libagg
ale nie działa. - Próbowałem użyć innego argumentu zaplecza, takiego jak „GTK” i „TkAgg”.
- Zainstalowałem
python-gtk2-dev
pakiet, ale nadal błąd jest poniżej. - Czy ktoś może mi podać wykonywalny argument zaplecza i jego bibliotekę zależności?
Oto błąd:
>>> matplotlib.use('GTK')
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/matplotlib/pyplot.py", line 95, in <module>
new_figure_manager, draw_if_interactive, show = pylab_setup()
File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
globals(),locals(),[backend_name])
File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gtk.py", line 28, in <module>
from matplotlib.backends.backend_gdk import RendererGDK, FigureCanvasGDK
File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gdk.py", line 29, in <module>
from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array
ImportError: No module named _backend_gdk
python
linux
graphics
matplotlib
user504909
źródło
źródło
FYI, stwierdziłem, że muszę
matplotlib.use('Agg')
najpierw wprowadzić kolejność importu Pythona. W przypadku tego, co robiłem (testy jednostkowe musiały być bezgłowe), oznaczało to umieszczanieimport matplotlib matplotlib.use('Agg')
u góry mojego głównego skryptu testowego. Nie musiałem dotykać żadnych innych plików.
źródło
Można to również ustawić w pliku konfiguracyjnym
matplotlibrc
(jak wyjaśniono w komunikacie o błędzie), na przykład:# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo # CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG backend : Agg
W ten sposób backend nie musi być zakodowany na stałe, jeśli kod jest udostępniany innym osobom. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją .
źródło
Opublikowane przez Ciebie błędy są niepowiązane. Pierwsza z nich wynika z wyboru zaplecza, które nie jest przeznaczone do użytku interaktywnego, tj. Agg. Nadal możesz używać (i powinieneś używać) tych do generowania wykresów w skryptach, które nie wymagają interakcji użytkownika.
Jeśli chcesz mieć interaktywne środowisko laboratoryjne, jak w Matlab / Pylab, oczywiście zaimportujesz zaplecze obsługujące użycie GUI, takie jak Qt4Agg (wymaga Qt i AGG), GTKAgg (GTK an AGG) lub WXAgg (wxWidgets i Agg).
Zacząłbym od próby użycia WXAgg, poza tym naprawdę zależy to od tego, jak zainstalowałeś Pythona i matplotlib (źródło, pakiet itp.)
źródło
Przed uruchomieniem Pythona możesz to zrobić w bash
źródło
Możesz także spróbować wyświetlić wykres w przeglądarce.
Użyj następujących:
matplotlib.use('WebAgg')
źródło
Uderzam w to, próbując skompilować Python, numpy, scipy, matplotlib w moim własnym VIRTUAL_ENV
Przed zainstalowaniem matplotlib musisz skompilować i zainstalować: pygobject pycairo pygtk
A następnie zrób to za pomocą matplotlib: przed utworzeniem matplotlib sprawdź za pomocą 'python ./setup.py build --help', jeśli jest włączony backend 'gtkagg'. Następnie skompiluj i zainstaluj
Przed eksportem PKG_CONFIG_PATH = $ VIRTUAL_ENV / lib / pkgconfig
źródło
Dla nowych przybyszów,
źródło