2016-03-29 5 views
0

Ich möchte auf meiner GUI mit pyqt5 mit Matplotlib plotten. Ich habe eine Klasse namens MatplotlibWidget erstellt, die die Figur und die Leinwand meines Plots erstellt. Aber ich habe ein Problem, meine Leinwand mit der Funktion FigureCanvasQTAgg zu erzeugen (was eine Matplotlib-Funktion ist).Fehler bei der Verwendung von FigureCanvasQTAgg in MatplotlibWidget pyqt5

Hier ist der Teil meines Codes, die abgehört wird:

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) 

Ich habe diesen Fehler:

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 

ich auf vielen Foren gesucht haben, aber ich konnte keine Lösung finden, um mein Problem. Ich verstehe nicht, warum ein "Positionsargument" fehlt. Bitte hilf mir !

Ich bin auf MacOS El Capitan mit Python 3.5 64bit. Ich habe Matplotlib mit Pip installiert, wenn es helfen kann.

Danke Jungs :)

+0

ich mit Qt nicht sehr vertraut bin, sondern aus der Spur sieht es aus wie 'QWidget .__ init __()' ist, was fehlt ein Positionsargument – jonchar

Antwort

2

Wenn pyqt5 verwenden, dies zu tun:

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg 
Verwandte Themen