我使用在一個小部件PyQt4中嵌入一個Axes3D以下問題所示的方法:如何在嵌入在PyQt4小部件中的Axes3D(matplotlib)中啓用循環?
當啓動應用程序,我不能再通過轉動鼠標移動軸。我需要做些什麼來啓用輪換?
我使用在一個小部件PyQt4中嵌入一個Axes3D以下問題所示的方法:如何在嵌入在PyQt4小部件中的Axes3D(matplotlib)中啓用循環?
當啓動應用程序,我不能再通過轉動鼠標移動軸。我需要做些什麼來啓用輪換?
任何時候你打電話給Axes3D.clear()
之類的東西,然後再次啓用鼠標旋轉,你必須撥打Axes3D.mouse_init()
。
似乎沒有證件,但它適用於我! Source
我有同樣的問題,深入調試後解決它。問題是畫布實例的不一致。示例代碼首先構造一個自動爲該圖形提供canvas實例的圖形。然後軸將被添加到圖中,然後將圖的畫布替換爲可用作QWidget
的另一個畫布。
但是,Axes3D
構造函數將回調函數添加到其圖的畫布以實現旋轉特徵。因此,如果畫布在此之後被替換,則與旋轉函數的連接會丟失。
也許在將圖形添加到軸之前簡單地調用FigureCanvas.__init__()
就足夠了,但我還沒有嘗試過。
我的工作解決方案有點不同:首先我撥打matplotlib.use("Qt4Agg")
來設置正確的後端。接下來,我構建了數字fig = matplotlib.pyplot.figure()
,確保他們已經包含正確的畫布,然後將Axes3D
添加到他們。我簡單地訪問畫布作爲數據元素fig.canvas
並將其用作QWidget
。在構建任何圖形之前,致電QtGui.QApplication()
也很重要。
推薦的那樣,我覺得我實際上在做那些,但它不起作用。也許你可以在http://pastebin.com/Y7Fcsnpp上看看我的代碼(46行),並且可能對發生了什麼問題有所瞭解。 – Christian
我有一個類似的問題,但我的軸不會出現。我打電話給FigureCanvas.__init__()
,然後通過self.ax = self.fig.add_subplot(111, projection='3d')
加上這個座標軸,就像Björn
感謝您的提示,它確實工作得很好! – Kevin