def __init__(self, device): super().__init__() self.n = 1 self.id = 1 self.bar = 0 self.countLine = 0 self.device = device matplotlib.rcParams['font.family'] = ['SimHei'] # 用来正常显示中文标签 matplotlib.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 layout = QtWidgets.QVBoxLayout(self) self.freqCanvas = FigureCanvas(Figure(figsize=(9, 6))) # 添加工具栏 self.toolbar = NavigationToolbar(self.freqCanvas, self) layout.addWidget(self.toolbar) layout.addWidget(self.freqCanvas) self.axs = self.freqCanvas.figure.subplots(2, 1, sharex=True) self.axs[0].set_xlim(150, 200) self.axs[0].set_ylim(-100, -70) self.axs[1].set_xlim(150, 200) self.axs[1].set_ylim(-100, 0) # while True: # if os.path.exists('D:\\postgraduate_program\\48recv\\%s\\1.dat'%self.device): # self.n+=1# self.n=1 # line = self.draw(self.n) # break norm = matplotlib.colors.Normalize(-120, -60) # self.freqCanvas.figure.colorbar(line, ax=self.axs[1], norm=norm, orientation='horizontal') self.freqCanvas.figure.canvas.mpl_connect('button_press_event', self.drawFreq) self.start = QtWidgets.QPushButton('start') self.stop = QtWidgets.QPushButton('stop') layout.addWidget(self.start) layout.addWidget(self.stop) self.start.clicked.connect(self._start) self.stop.clicked.connect(self._stop) # 定时任务 self._timer = self.freqCanvas.new_timer(1000, [(self._update_canvas, (), {})])
def _set_matplot_layout(self): self.figure = plt.figure() self.canvas = FigureCanvas(self.figure) self.ax = Axes3D(self.figure) matplotlib.rcParams["font.family"] = "STSong" self.toolbar = NavigationToolbar(self.canvas, self.c_widget) # self.cbx_equal = QCheckBox("等比例坐标") # self.cbx_equal.stateChanged.connect(lambda: self._equal_state()) self.cbx_detail = QCheckBox("显示表面细节") self.cbx_detail.stateChanged.connect(lambda: self._show_detail()) self.left_layout.addWidget(self.canvas) # self.left_layout.addWidget(self.cbx_equal) # 目前Axes3D尚不支持等比例坐标 self.left_layout.addWidget(self.cbx_detail) self.left_layout.addWidget(self.toolbar)
def __init__(self, parent=None): super(QTabRawData, self).__init__(parent=None) self.main_widget = QStackedWidget(self) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) main_layout = QVBoxLayout(self.main_widget) self.plot = plot(self.main_widget, width=PLOT_WIDTH, height=PLOT_HEIGHT, dpi=100) self.navi_toolbar = NavigationToolbar(self.plot, self) main_layout.addWidget(self.navi_toolbar) main_layout.addWidget(self.plot) self.setLayout(main_layout)
def __init__(self, path): super().__init__() self.path = path matplotlib.rcParams['font.family'] = ['SimHei'] # 用来正常显示中文标签 matplotlib.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 layout = QtWidgets.QVBoxLayout(self) self.freqCanvas = FigureCanvas(Figure(figsize=(9, 6))) # 添加工具栏 self.toolbar = NavigationToolbar(self.freqCanvas, self) layout.addWidget(self.toolbar) layout.addWidget(self.freqCanvas) self.axs = self.freqCanvas.figure.subplots(1, 1) # self.axs.set_xlim(150, 200) # self.axs.set_ylim(-100, -70) self.draw()
def __init__(self, parent=None): super().__init__(parent) plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体 plt.rcParams['axes.unicode_minus'] = False self.figure = Figure((5.0, 4.0), dpi=100) self.canvas = FigureCanvas(self.figure) self.canvas.setParent(self) self.toolbar = NavigationToolbar(self.canvas, self) self.textbox = QLineEdit() self.textbox.setMinimumWidth(200) vbox = QVBoxLayout(self) vbox.addWidget(self.toolbar) vbox.addWidget(self.canvas)
def __init__(self, parent=None): super(QTabMultipleResidualsShape, self).__init__(parent=None) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.main_widget = QWidget(self) self.in_or_out = 'IN' self.folders = [] main_layout = QVBoxLayout(self.main_widget) self.plot = plot(self.main_widget, width=6.5, height=6, dpi=100) self.navi_toolbar = NavigationToolbar(self.plot, self) main_layout.addWidget(self.navi_toolbar) main_layout.addWidget(self.plot) self.setLayout(main_layout)
def kMeansPlot(self): if self.kEdit.text() == "": QMessageBox.warning(self, "警告", "请输入分类个数", QMessageBox.Ok) return self.kButton.setEnabled(False) # 替换掉旧的Canvas self.newMpl = KMeansCanvas(self) self.newNplNtb = NavigationToolbar(self.newMpl, self) self.mainLayout.replaceWidget(self.mpl, self.newMpl) # 替换控件 self.mainLayout.replaceWidget(self.newNplNtb, self.mplNtb) del self.mpl, self.mplNtb self.mpl = self.newMpl self.mplNtb = self.newNplNtb # 开始画KMeans结果 self.mpl.kMeansPlot(self.dataSet, int(self.kEdit.text()), self.statusBar(), self.kButton)
def deletion_ratio(self, sample, reg, regPAM): self.button = QPushButton('Color', self) self.button.move(20, 20) self.figure = plt.figure(figsize=(8, 6)) self.canvas = FigureCanvas(self.figure) self.toolbar = NavigationToolbar(self.canvas, self) self.layout = QtWidgets.QVBoxLayout() self.layout.addWidget(self.toolbar) self.layout.addWidget(self.canvas) self.layout.addWidget(self.button) glabels = list(reg.fillna(" ").label) self.button.clicked.connect( lambda: self.showDialog(sample, reg, regPAM)) self.ax = self.figure.add_subplot(111) self.ax.bar(reg.index, reg.ratio, color='blue') self.ax.set_title(sample, fontdict={'family': 'Arial'}, size=15) # print(self.seqlistother) # print(self.seqlistother[1]) self.ax.set_xticks(reg.index, minor=True) self.ax.set_xticklabels(glabels, color="black", minor=True, fontdict={ 'family': 'Arial', 'weight': 'bold' }, size=12) # minor=True表示次坐标轴 self.ax.set_xticks(regPAM.index) self.ax.set_xticklabels(regPAM.label, color="red", fontdict={ 'family': 'Arial', 'weight': 'bold' }, size=12) plt.ylabel('Deletion Ratio (%)', fontdict={'family': 'Arial'}, size=15) self.setLayout(self.layout) self.show()
def __init__(self, parent=None): super(QTabPosition, self).__init__(parent=None) self.main_widget = QWidget(self) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) main_layout = QVBoxLayout(self.main_widget) self.ax1 = ecc_plot(self.main_widget, width=9, height=6, dpi=100) self.navi_toolbar = NavigationToolbar(self.ax1, self) main_layout.addWidget(self.navi_toolbar) main_layout.addWidget(self.ax1) self.positions_IN = 0 self.positions_OUT = 0 self.time_IN = 0 self.time_OUT = 0
def GraphUtilGaussianFitGraphs(self, name, x, y, error, xLabel, yLabel, whichGraph): """Generic plotting method that plots depending on which graph is being plotted. :param canvas: canvas for widget :param fig: figure for graph :param name: name of tab :param x: x-values :param y: y-values :param error: error values for gaussian fit graphs :param xLabel: x-axis label :param yLabel: y-axis label :param whichGraph: char that represents either gaussian or lattice fit """ mainGraph = qtWidgets.QWidget() fig = plab.Figure((5.0, 4.0), dpi=100) canvas = FigureCanvas(fig) canvas.setParent(mainGraph) axes = fig.add_subplot(111) axes.plot(x, y) print(y) print("Fitted Data") print(name) if whichGraph == 'G': axes.errorbar(x, y, yerr=error, fmt='o') elif whichGraph == 'L': axes.plot(x, y, 'go') axes.yaxis.set_major_formatter(plab.FormatStrFormatter('%.4f')) axes.set_title(name) axes.set_xlabel(xLabel) axes.set_ylabel(yLabel) canvas.draw() tab = qtWidgets.QWidget() tab.setStatusTip(name) vbox = qtWidgets.QVBoxLayout() graphNavigationBar = NavigationToolbar(canvas, mainGraph) vbox.addWidget(graphNavigationBar) vbox.addWidget(canvas) tab.setLayout(vbox) self.myMainWindow.savingCanvasTabs(tab, name, canvas, fig)
def __init__(self): QMainWindow.__init__(self) QMainWindow.resize(self,1500,900) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setWindowTitle("application main window") self.main_widget = QtWidgets.QWidget(self) vbox = QtWidgets.QVBoxLayout(self.main_widget) # set canvas size self.canvas = MyMplCanvas(self.main_widget,width=12, height=12) self.mpl_toolbar = NavigationToolbar(self.canvas, self) vbox.addWidget(self.mpl_toolbar) vbox.addWidget(self.canvas) self.textBrowser = QTextBrowser(self) vbox.addWidget(self.textBrowser) self.setLayout(vbox) # make the cursor always focus the newset line self.textBrowser.textChanged.connect(lambda:self.textBrowser.moveCursor(QtGui.QTextCursor.End)) self.main_widget.setFocus() self.setCentralWidget(self.main_widget) # dynamic update the plot self.plot1 = animation.animation1Class(self.canvas, self) self.plot1.start() # dynamic update the plot self.plot2 = animation.animation2Class(self.canvas, self) self.plot2.start() # dynamic update the plot self.plot3 = animation.animation3Class(self.canvas, self) self.plot3.start() # read data thread self.read = read.readClass(self) self.read.start() # simulate send date0 thread self.sendtest0 = sendtest0.sendClass() self.sendtest0.start() # simulate send data1 thread self.sendtest1 = sendtest1.sendClass() self.sendtest1.start()
def __init__(self, parent=None, width=5, height=8, dpi=100, matrixModel=[], title='', point=[]): fig = Figure(figsize=(width, height), dpi=dpi) self.axes = fig.add_subplot(111) self.title = title self.Plot(matrixModel, title, point) FigureCanvas.__init__(self, fig) self.mpl_toolbar = NavigationToolbar(self, parent) self.setParent(parent) FigureCanvas.setSizePolicy(self, QSizePolicy.Expanding, QSizePolicy.Expanding) FigureCanvas.updateGeometry(self)
def _init_ui(self): self.setWindowTitle("测试工具栏") self.setMinimumSize(800, 600) self.setMaximumSize(800, 600) self.central_layout = QVBoxLayout() self.c_widget = QWidget() self.c_widget.setLayout(self.central_layout) self.setCentralWidget(self.c_widget) self.figure = plt.figure() self.canvas = FigureCanvas(self.figure) self.ax = Axes3D(self.figure) self.toolbar = NavigationToolbar(self.canvas, self.c_widget) self.central_layout.addWidget(self.canvas) self.central_layout.addWidget(self.toolbar) self._draw_surface()
def __init__(self, parent=None): super().__init__(parent) # a figure instance to plot on self.figure = Figure() self.ax = self.figure.add_subplot(111) # this is the Canvas Widget that displays the `figure` # it takes the `figure` instance as a parameter to __init__ self.canvas = FigureCanvas(self.figure) # this is the Navigation widget # it takes the Canvas widget and a parent self.toolbar = NavigationToolbar(canvas=self.canvas, parent=parent) # set the layout if parent.layout() is not None: parent.layout().addWidget(self.canvas) else: layout = QtWidgets.QGridLayout(parent) layout.addWidget(self.canvas) layout.addWidget(self.toolbar)
def __init__( self ): super( GDZViewer, self ).__init__() self.setupUi( self ) self.mc = MplCanvas( self.verticalFrame ) self.mpl_toolbar = NavigationToolbar( self.mc, self.verticalFrame ) self.verticalLayout_3.addWidget( self.mc ) self.verticalLayout_3.addWidget( self.mpl_toolbar ) button_names = [] self.hosts = {} self.mainpaths = {} for key in conf['BUTTONS']: button_names.append( key ) button_positions = [( j, i ) for j in range( int( len( button_names ) / 4 + 1 ) ) for i in range( 4 ) ] for button_position, button_name in zip( button_positions, button_names ): button = QtWidgets.QPushButton() button.setObjectName( button_name ) button.setText( button_name[7:] ) button.clicked.connect( self.Switch_unit ) self.gridLayout_3.addWidget( button, *button_position ) self.mainpaths[button_name], self.hosts[button_name] = conf['BUTTONS'][button_name].split('@')
def __init__(self, parent = None, enableAutoScale = False, enableCSV = False, enableEdit = False, fig = None): QWidget.__init__(self, parent) self.canvas = QtMplCanvas(fig) self.canvas.ax.mouse_init() self.toolbar = NavigationToolbar(self.canvas, self.canvas) self.vbox = QVBoxLayout() self.vbox.addWidget(self.canvas) self.vbox.addWidget(self.toolbar) self.setLayout(self.vbox) ###########SAVING FIGURE TO CLIPBOARD########## self.cb = None #will be used for the clipboard self.tempPath = getHomeDir() self.tempPath = os.path.join(self.tempPath,'tempMPL.png') self.mpl2ClipAction = QAction("Save to Clipboard", self) self.mpl2ClipAction.setShortcut("Ctrl+C") self.addAction(self.mpl2ClipAction) # QObject.connect(self.mpl2ClipAction,pyqtSignal("triggered()"), self.mpl2Clip) self.mpl2ClipAction.triggered.connect(self.mpl2Clip)
def __init__(self, parent=None): super().__init__(parent) self.figure = plt.figure() self.axes = self.figure.add_subplot(111, projection='3d') # We want the axes cleared every time plot() is called # self.axes.hold(False) self.canvas = FigureCanvas(self.figure) self.toolbar = NavigationToolbar(self.canvas, self) self.toolbar.hide() # Just some button self.button1 = QtWidgets.QPushButton('上一帧') self.button1.clicked.connect(self.up_pic) self.button2 = QtWidgets.QPushButton('下一帧') self.button2.clicked.connect(self.down_pic) self.button3 = QtWidgets.QPushButton('传输配置文件') self.button3.clicked.connect(self.send_config) self.button4 = QtWidgets.QPushButton('无用') self.button4.clicked.connect(self.home) # set the layout layout = QtWidgets.QVBoxLayout() layout.addWidget(self.toolbar) layout.addWidget(self.canvas) btnlayout = QtWidgets.QHBoxLayout() btnlayout.addWidget(self.button1) btnlayout.addWidget(self.button2) btnlayout.addWidget(self.button3) btnlayout.addWidget(self.button4) qw = QtWidgets.QWidget(self) qw.setLayout(btnlayout) layout.addWidget(qw) self.setLayout(layout) self.res = []
def __init__(self, parent=None): super().__init__(parent) self.figure = plt.figure() self.axes = self.figure.add_subplot(111) # We want the axes cleared every time plot() is called self.axes.hold(False) self.canvas = FigureCanvas(self.figure) self.toolbar = NavigationToolbar(self.canvas, self) self.toolbar.hide() # Just some button self.button1 = QtWidgets.QPushButton('Plot') self.button1.clicked.connect(self.plot) self.button2 = QtWidgets.QPushButton('Zoom') self.button2.clicked.connect(self.zoom) self.button3 = QtWidgets.QPushButton('Pan') self.button3.clicked.connect(self.pan) self.button4 = QtWidgets.QPushButton('Home') self.button4.clicked.connect(self.home) # set the layout layout = QtWidgets.QVBoxLayout() layout.addWidget(self.toolbar) layout.addWidget(self.canvas) btnlayout = QtWidgets.QHBoxLayout() btnlayout.addWidget(self.button1) btnlayout.addWidget(self.button2) btnlayout.addWidget(self.button3) btnlayout.addWidget(self.button4) qw = QtWidgets.QWidget(self) qw.setLayout(btnlayout) layout.addWidget(qw) self.setLayout(layout)
def __init__(self, obj, cell, avg): self.figure = "" rcParams.update({'figure.autolayout': True}) self.class_sql_text = "" self.chosen_class = "" self.lines = dict() self.graph = "" self.avg = avg self.parent = obj self.qfigwidget = QtWidgets.QWidget(self.parent.ga_sa_contents) winWidth = 383 winHeight = 384 self.dpi = 100 self.figure = plt.Figure( (winWidth / self.dpi, winHeight / self.dpi), dpi=self.dpi ) #MplCanvas(self.parent.ga_sa_contents)#self.parent.GraphScrollArea) self.canvas = FigureCanvas(self.figure) self.canvas.setParent(self.qfigwidget) self.navi_toolbar = NavigationToolbar( self.canvas, self.qfigwidget) #self.parent.centralwidget) self.plotLayout = QtWidgets.QVBoxLayout() self.plotLayout.addWidget(self.canvas) self.plotLayout.addWidget(self.navi_toolbar) self.qfigwidget.setLayout(self.plotLayout) self.parent.ga_vert_layout.addWidget(self.qfigwidget) self.ax = None self.old_waits = "" self.dpi = self.figure.dpi self.begin_date = None self.all_data = None self.sysdate = True self.metric_name = self.parent.metric self.first_time = True self.starting_date = ( dt.datetime.now() - dt.timedelta(minutes=5)).strftime(' %Y-%m-%dT%H:%M:%S+01:00') self.xfmt = mdates.DateFormatter('%H:%M:%S') self.canvas.setMinimumSize(self.canvas.size()) self.cell = cell if self.parent.list_of_files is None: self.redraw_events()
def __init__(self, figure_title='', x_axis_title='', y_axis_title='', add_toolbar=True, add_grid=True): super().__init__() self.add_toolbar = add_toolbar self.add_grid = add_grid self.figure_title = figure_title self.x_axis_title = x_axis_title self.y_axis_title = y_axis_title self.figure, self.axes = pyplot.subplots() self.canvas = FigureCanvas(self.figure) if self.add_toolbar: self.toolbar = NavigationToolbar(self.canvas, self) else: self.toolbar = None self._set_layout() self._initialize_figure()
def __init__(self , parent =None): QtWidgets.QWidget.__init__(self, parent) self.canvas = MplCanvas() self.vbl = QtWidgets.QVBoxLayout() self.ntb = NavigationToolbar(self.canvas, parent) self.vbl.addWidget(self.ntb) self.vbl.addWidget(self.canvas) self.setLayout(self.vbl) self.dataX= [] self.dataY= [] self.initDataGenerator()
def __init__(self, parent=None, width=5, height=4, dpi=100): fig = Figure(figsize=(width, height), dpi=dpi) self._axes = fig.add_subplot(111) self.compute_initial_figure() FigureCanvas.__init__(self, fig) self.setParent(parent) FigureCanvas.setSizePolicy(self, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) FigureCanvas.updateGeometry(self) self.toolbar = NavigationToolbar(self, parent, False) def notify_axes_change(fig): # This will be called whenever the current axes is changed if self.toolbar is not None: self.toolbar.update() self.figure.add_axobserver(notify_axes_change)
def __init__(self, path): super().__init__() matplotlib.rcParams['font.family'] = ['SimHei'] # 用来正常显示中文标签 matplotlib.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 self.currenttime = datetime.datetime.now() self.path = path layout = QtWidgets.QVBoxLayout(self) self.freqCanvas = FigureCanvas(Figure(figsize=(9, 12))) # 添加工具栏 self.toolbar = NavigationToolbar(self.freqCanvas, self) layout.addWidget(self.toolbar) layout.addWidget(self.freqCanvas) self.axs = self.freqCanvas.figure.subplots(2, 1) self.freqCanvas.figure.canvas.mpl_connect('button_press_event', self.drawFreq) # self.axs.set_xlim(150, 200) # self.axs.set_ylim(-100, -70) self.draw()
def __init__(self, parent=None): super(Tdms_read, self).__init__(parent) self.setupUi(self) self.data=None self.figure_tdms = plt.figure(5) self.ax_tdms = self.figure_tdms.add_subplot(111) self.figure_tdms.subplots_adjust(left=0.1, right=0.9) self.canvas_tdms = FigureCanvas(self.figure_tdms) self.toolbar_tdms = NavigationToolbar(self.canvas_tdms, self) self.verticalLayout_tdms.addWidget(self.toolbar_tdms) self.verticalLayout_tdms.addWidget(self.canvas_tdms) self.tdms_is_view = False #self.axs_tdms = self.ax_tdms.twinx() self.openfile.clicked.connect(self.loadtdms) self.plotdata.clicked.connect(self.plottdms) self.savedata.clicked.connect(self.savetdms) self.tdms_span = SpanSelector(self.ax_tdms, self.tdms_onselect, 'horizontal', useblit=True, button=3, rectprops=dict(alpha=0.3, facecolor='g'))
def __init__(self, parent=None): super(QTabRDS, self).__init__(parent=None) self.main_widget = QStackedWidget(self) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) main_layout = QVBoxLayout(self.main_widget) self.plot = plot(self.main_widget, width=6.5, height=6, dpi=100) self.navi_toolbar = NavigationToolbar(self.plot, self) main_layout.addWidget(self.navi_toolbar) main_layout.addWidget(self.plot) self.x_IN_A = np.ones((200, 200)) self.x_OUT_A = np.ones((200, 200)) self.y_IN_A = np.ones((200, 200)) self.y_OUT_A = np.ones((200, 200)) self.focus = 0 self.setLayout(main_layout)
def __init__(self, parent=None, *args, **kwargs): QMainWindow.__init__(self) self.setupUi(self) # add equations and initial conditions in the text field self.addEqaution() # get the parameters of the shape and axes self.fig, self.axes = self.plot_single_empty_graph() # by pressing the button solve the equation, # derive the values of the exact solution, # the solutions by the Euler method and draw curves self.btn_decide.clicked.connect(self.showSchedule) # create a widget for displaying curves and a toolbar self.campanovka = QtWidgets.QGridLayout(self.widget) self.canavas = MyMplCanvas(self.fig) self.campanovka.addWidget(self.canavas, 1, 3, 1, 1) self.toolbar = NavigationToolbar(self.canavas, self) self.campanovka.addWidget(self.toolbar, 2, 3, 1, 1)
def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle("グラフ") self.setGeometry(300, 300, 500, 500) self.figure = plt.figure() self.axes = self.figure.add_subplot(111) # We want the axes cleared every time plot() is called self.axes.hold(False) self.canvas = FigureCanvas(self.figure) self.canvas.setParent(self) self.canvas.move(100, 20) self.toolbar = NavigationToolbar(self.canvas, self) self.toolbar.hide() # Just some button self.button1 = QtWidgets.QPushButton('Plot', self) self.button1.clicked.connect(self.plot) self.button1.move(0, 400)
def __init__(self, dataArrayChanged, parent, tools=None, rotateCrossSection=False): # self.dataArrayChanged = dataArrayChanged self.rotateCrossSection = rotateCrossSection self.parent = parent BasePlot.__init__(self) # create plot self.fig = Figure() FigureCanvas.__init__(self, self.fig) # FigureCanvas.setSizePolicy(self, # QtWidgets.QSizePolicy.Expanding, # QtWidgets.QSizePolicy.Expanding) # for receiving key events this focus has to be set self.setFocusPolicy(QtCore.Qt.ClickFocus) self.setFocus() FigureCanvas.updateGeometry(self) # connect events for data array update dataArrayChanged.connect(self.onDataArrayChange) # connect events for tools if tools is not None: # this function does not do anything. It is however necessary to create a new scope for id # wihtout it id would always be the last value of the for loop def createHandler(id): return lambda: self.onToolChange(id) for id in tools.keys(): tools[id].triggered.connect(createHandler(id)) # add toolbar self.mpl_toolbar = NavigationToolbar(self, parent)
def __init__(self, filepath, device_name): super().__init__() self.filepath = filepath self.y1List = [] self.device_name = device_name matplotlib.rcParams['font.family'] = ['SimHei'] # 用来正常显示中文标签 matplotlib.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 layout = QtWidgets.QVBoxLayout(self) # 实例化布局,用来塞画布 self.freqCanvas = FigureCanvas(Figure(figsize=(12, 6))) # 实例化画布 # 添加工具栏 self.toolbar = NavigationToolbar(self.freqCanvas, self) layout.addWidget(self.toolbar) layout.addWidget(self.freqCanvas) self.axs = self.freqCanvas.figure.subplots(1, 2, sharex=True) self.axs[0].set_xlim(150, 200) self.axs[0].set_ylim(-100, -70) self.axs[1].set_xlim(100, 200) self.axs[1].set_ylim(-500, 0) self.draw()
def __init__(self, parent=None, ob=FileProcess.FileProcess): self.log = ob super().__init__(parent) self.setupUi(self) self.sp = Figure_Canvas(self.widget) # 这是继承FigureCanvas的子类,使用子窗体widget作为 self.trainComTable = QtWidgets.QTableWidget() l = QtWidgets.QVBoxLayout(self.widget) self.sp.mpl_toolbar = NavigationToolbar(self.sp, self.widget) # 传入FigureCanvas类或子类实例,和父窗体 # l.addWidget(self.trainComTable) l.addWidget(self.sp) l.addWidget(self.sp.mpl_toolbar) self.acc_table_format() logicon = QtGui.QIcon() logicon.addPixmap(QtGui.QPixmap(":IconFiles/BZT.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(logicon) self.setWindowTitle(u'车辆通信时延观测器') self.resize(500, 600) # 初始化内容 self.ato2tcms_tb_ctrl = [] self.tcms2ato_tb_fbk = [] self.cycle_ord = [] # 为了使得绘图由周期信息,考虑到某个周期可能没有输入只有输出,所以需要人工组合,使得输入保持 self.mvbdialog = MVBPortDlg()