Me gustaría trazar en mi GUI con pyqt5 usando matplotlib. He creado una clase llamada MatplotlibWidget que crea la figura y el canvas de mi ttwig. Pero tengo un problema para generar mi canvas con la función FigureCanvasQTAgg (que es una función matplotlib).
Aquí la parte de mi código que está fastidiando:
import matplotlib.pyplot as plt from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg from matplotlib.figure import Figure #Some more code...not relevant class MatplotlibWidget(QWidget): def __init__(self): QWidget.__init__(self) self.fig = Figure() self.canvas = FigureCanvasQTAgg(self.fig) #line 86 self.axis = self.fig.add_subplot(111) self.layoutVerticalTest = QVBoxLayout(self) self.layoutVerticalTest.addWidget(self.canvas)
Tengo este error:
File "/Users/AlexisTuil/Desktop/projet inno/sc_analysis/visualisation.py", line 86, in __init__self.canvas = FigureCanvasQTAgg(self.fig) File "/usr/local/lib/python3.5/site packages/matplotlib/backends/backend_qt4agg.py", line 76, in __init__FigureCanvasQT.__init__(self, figure) File "/usr/local/lib/python3.5/site-packages/matplotlib/backends/backend_qt4.py", line 71, in __init__QtWidgets.QWidget.__init__(self) TypeError: __init__() missing 1 required positional argument: 'figure' Abort trap: 6
He buscado en muchos foros pero no pude encontrar una solución a mi problema. No entiendo por qué falta un “argumento posicional”. Por favor, ayúdame !
Estoy en MacOS El Capitán con python3.5 64bit. Instalé matplotlib con pip si puede ayudar.
Gracias chicos 🙂
Si usa pyqt5, haga esto:
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg