Je suis un nouvel utilisateur de matplotlib, ma plate-forme est Ubuntu 10.04 Python 2.6.5
C'est mon code
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.plot([1,2,3])
L'erreur est:
/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()))
apt-get install libagg
mais cela ne fonctionne pas.python-gtk2-dev
, mais l'erreur est toujours ci-dessous.Voici l'erreur:
>>> 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
Le backend actuellement sélectionné, "agg", ne supporte pas show ().
AGG
backend est utilisé pour écrire dans un fichier, pas pour le rendu dans une fenêtre. Voir le backend FAQ sur le site Web de matplotlib.
ImportError: Aucun module nommé _backend_gdk
Pour la deuxième erreur, peut-être que votre distribution matplotlib n’est pas compilée avec le support GTK, ou vous manquez le paquet PyGTK. Essayez de l'installer.
Appelez-vous la méthode show()
dans un terminal ou une application ayant accès à un environnement graphique?
Essayez d’autres interfaces graphiques, dans cet ordre:
TkAgg
WX
QTAgg
QT4Agg
Pour votre information, j'ai trouvé que j'avais besoin de mettre matplotlib.use('Agg')
en premier dans l'ordre d'importation Python. Pour ce que je faisais (les tests unitaires devaient être sans tête) cela signifiait mettre
import matplotlib
matplotlib.use('Agg')
au sommet de mon script de test maître. Je n'ai pas eu à toucher à d'autres fichiers.
Ceci peut également être défini dans le fichier de configuration matplotlibrc
(comme expliqué dans le message d'erreur), par exemple:
# 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
De cette façon, le backend n'a pas besoin d'être codé en dur si le code est partagé avec d'autres personnes . Pour plus d'informations, consultez documentation .
Les erreurs que vous avez publiées ne sont pas liées. Le premier est dû au fait que vous avez sélectionné un serveur qui n’est pas destiné à une utilisation interactive, c’est-à-dire agg. Vous pouvez toujours utiliser (et devriez utiliser) ceux pour la génération de graphiques dans des scripts qui ne nécessitent pas d'interaction de l'utilisateur.
Si vous voulez un environnement de laboratoire interactif, comme dans Matlab/Pylab, vous importerez évidemment un backend prenant en charge l'utilisation de l'interface graphique, tel que Qt4Agg (nécessite Qt et AGG), GTKAgg (GTK et AGG) ou WXAgg (wxWidgets et Agg).
Je commencerais par essayer d'utiliser WXAgg, mais cela dépend vraiment de la manière dont vous avez installé Python et matplotlib (source, paquet, etc.).
Je frappe ceci en essayant de compiler python, numpy, scipy, matplotlib dans mon propre VIRTUAL_ENV
Avant d'installer matplotlib, vous devez créer et installer: Pygobject Pycairo Pygtk
Et faites-le ensuite avec matplotlib: Avant de construire matplotlib, vérifiez avec 'python ./setup.py build --help' si le backend 'gtkagg' est activé. Ensuite, construisez et installez
Avant l'exportation PKG_CONFIG_PATH = $ VIRTUAL_ENV/lib/pkgconfig
Avant de commencer python, vous pouvez le faire en bash
export MPLBACKEND=TkAgg