2016-03-29 4 views
0

matplotlibを使用してpyqt5で私のGUIをプロットしたいと思います。 MatplotlibWidgetという名前のクラスを作成して、私のプロットの図形とキャンバスを作成しました。しかし、私は、(Matplotlib関数である)FigureCanvasQTAgg関数でキャンバスを生成するのに問題があります。MatplotlibWidget pyqt5でFigureCanvasQTAggを使用しているエラー

ここに盗聴されて私のコードの一部:

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) 

私はこのエラーを持っている:

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 

私は多くのフォーラムで検索しましたが、私は解決策を見つけることができませんでした私の問題。なぜ私は「位置的な議論」がないのか分からない。私を助けてください !

私はMacOS El Capitan上でpython3.5 64bitを使用しています。私はそれが助けることができる場合pipとmatplotlibをインストールしました。

みんなありがとう:)

+0

私はQtの非常に精通していないよしかしトレースから、それは 'QWidgetの.__のinit __()'何が欠けているように見えます位置の引数。 – jonchar

答えて

2

pyqt5を使用している場合は、次の操作を行います。

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg 
関連する問題