2016-08-19 54 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