2016-08-19 25 views
1

我用下面的代碼嵌入一個積成GUI

ntwk = rf.Network("my data path") 
ntwk.plot_s_smith() 

然後我想將它嵌入到我的Python GUI發現一個網站scikit射頻

http://scikit-rf.readthedocs.io/en/latest/tutorials/plotting.html

它可以創建史密斯情節。

import sys 
from PyQt4 import QtGui,QtCore 
import matplotlib 
import matplotlib.figure 
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas 
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar 
import skrf as rf 
import numpy as np 
class PrettyWidget(QtGui.QMainWindow): 

    def __init__(self): 
     super(PrettyWidget, self).__init__() 
     self.setGeometry(100,100,1200,700) 
     self.center() 
     self.setWindowTitle('NRW') 



     self.initUI() 

    def initUI(self): 

     grid = QtGui.QGridLayout() 
     self.setLayout(grid) 
     self.figure = matplotlib.figure.Figure() 
     self.canvas = FigureCanvas(self.figure) 
     self.toolbar = NavigationToolbar(self.canvas, self) 
     grid.addWidget(self.canvas, 3,0,2,12) 

    def plot1(self): 

     self.figure.clf() 
     self.figure.tight_layout() 
     self.canvas.draw() 



if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    app.aboutToQuit.connect(app.deleteLater) 
    GUI = PrettyWidget() 
    GUI.show() 
    app.exec_() 

但我不知道如何把或修改下面

ntwk = rf.Network("my data path") 
ntwk.plot_s_smith() 

會有人告訴我,如果您有任何iedas代碼?謝謝!

回答

1

Network.plot_s_smith有一個ax關鍵字來繪製現有的對象。所以你可以這樣修改你的劇情功能:

def plot1(self): 

    self.figure.clf() 
    ntwk = rf.Network("my data path") 
    ntwk.plot_s_smith(ax=self.figure.gca()) 
    self.figure.tight_layout() 
    self.canvas.draw() 
+0

Thanks!我現在可以顯示我的結果!順便說一句self.figure.tight_layout()被刪除或它會顯示錯誤。 – radiosan

+0

可能因爲現在還沒有座標軸。你可以在'plot_s_smith'之後移動它。 –

+0

是的!你是對的。再次感謝! – radiosan