我正在用PyQt4開發一個應用程序,我需要使用Matplotlib顯示圖形。爲此,我使用以下代碼,該代碼運行良好:在PyQt中嵌入matplotlib顏色條
self.PhaFig = fig.Figure() #Creation of the Figure
self.PhaBeamCanvas = FigureCanvasQTAgg(self.PhaFig) #Creation of the display canvas
self.AxesPhaInit = self.PhaFig.add_subplot(111, title = "Input beam phase", aspect = 'equal') #Creation of the axes object inside the Figure
imgPha = self.AxesPhaInit.imshow(self.wf_mask,extent =[-xx/2+xx/N,xx/2,-xx/2+xx/N,xx/2])
self.PhaFig.colorbar(imgPha) #adding a colorbar to the graph
self.PhaBeamCanvas.draw() #drawing on the canvas
此圖隨着按鈕被按下時更新。圖表的更新運行良好。問題來自於顏色條。繪製新圖形時,先前的顏色條不會被刪除,並且新的顏色條會被繪製在靠近舊顏色條的位置。
我已經試過類似:
self.PhaFig.delaxes(self.AxesPhaInit)
但是,這是行不通的。圖形被刪除,但不是彩條,下一個圖形顯示不再起作用。
有人有想法嗎?
一般來說,最好用最簡單的代碼來提問,這樣可以證明問題。重複調用'fig.colorbar'也會導致添加額外的顏色條,這與您如何設置對象無關,所以這可以通過基於pyplot的示例更簡單地演示。也獨立於Qt。 – tacaswell
此外,您發佈的代碼中存在一個錯誤,您爲光束強度創建了一個軸,但是正在繪製相位軸。 – tacaswell
我更正了代碼中的錯誤。 –