J'essaie actuellement de créer une application simple qui comprend des chiffres pylab
. Je viens de commencer à utiliser quickly
et je suis préoccupé par certains problèmes d'importation. Autrement dit, aucun des backends matplotlib
ne pourra fonctionner.
Plus précisément, si l'une des instructions import
suivantes n'est pas commentée dans mon fichier principal, quickly
ne pourra pas exécuter l'application.
#from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas
#from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg as FigureCanvas
#from matplotlib.backends.backend_gtkcairo import FigureCanvasGTKCairo as FigureCanvas
donc il n'y a aucun moyen que je puisse intégrer une intrigue.
Voici la sortie de quickly run
si la backend_gtk
n'est pas commenté
/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed import gobject._gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: specified class size for type `PyGtkGenericCellRenderer' is smaller than the parent type's `GtkCellRenderer' class size from gtk import
_gtk
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_type_get_qdata: assertion `node != NULL' failed from gtk import _gtk
Une idée de ce qui pourrait résoudre le problème? Avez-vous besoin de plus d'informations?
Vous aurez besoin d'au moins la version 1.2.0 de matplotlib, puis utilisez les backends GTK3.
Exemple tiré de http://matplotlib.org/examples/user_interfaces/embedding_in_gtk3.html
#!/usr/bin/env python
"""
demonstrate adding a FigureCanvasGTK3Agg widget to a Gtk.ScrolledWindow
using GTK3 accessed via pygobject
"""
from gi.repository import Gtk
from matplotlib.figure import Figure
from numpy import arange, sin, pi
from matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as FigureCanvas
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit )
win.set_default_size(400,300)
win.set_title("Embedding in GTK")
f = Figure(figsize=(5,4), dpi=100)
a = f.add_subplot(111)
t = arange(0.0,3.0,0.01)
s = sin(2*pi*t)
a.plot(t,s)
sw = Gtk.ScrolledWindow()
win.add (sw)
# A scrolled window border goes outside the scrollbars and viewport
sw.set_border_width (10)
canvas = FigureCanvas(f) # a Gtk.DrawingArea
canvas.set_size_request(800,600)
sw.add_with_viewport (canvas)
win.show_all()
Gtk.main()
Remarque: Ubuntu 12.04 n'a pas Matplotlib 1.2.0 dans le référentiel, mais il est installable via pip
:
Sudo pip install matplotlib