91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

python實現可暫停的動態曲線繪制,橫縱坐標從上一個點到當前點,同時保存數據到文件中

資源截圖

代碼片段和文件信息

#?-*-?coding=UTF-8?-*-
#?縱坐標、橫坐標從上一個點到當前點
import?sys
import?numpy
from?PyQt5?import?QtWidgets
import?threading
import?matplotlib.ticker?as?ticker
from?datetime?import?datetime
from?matplotlib.backends.backend_qt5agg?import?FigureCanvasQTAgg?as?FigureCanvas
from?matplotlib.backends.backend_qt5?import?NavigationToolbar2QT?as?NavigationToolbar
from?matplotlib.dates?import?date2num
import?numpy?as?np
from?matplotlib.figure?import?Figure
import?os
import?csv
import?time



class?MplCanvas(FigureCanvas):
????def?__init__(self):
????????self.fig?=?Figure()
????????self.ax?=?self.fig.add_subplot(111)
????????FigureCanvas.__init__(self?self.fig)
????????self.curveObj?=?None

????def?plot(self?datax?datay):
????????if?self.curveObj?is?None:
????????????self.curveObj?=?self.ax.plot_date(np.array(datax)?np.array(datay)?‘b-‘)

????????else:
????????????self.curveObj.set_data(np.array(datax)?np.array(datay))
????????????if?len(datax)?>?1:
????????????????self.ax.set_xlim(datax[-2]?datax[-1])
????????????else:
????????????????self.ax.set_xlim(datax[0]?datax[-1])
????????????#?這是縱坐標軸的范圍,可根據需要自行修改
????????????if?len(datay)?>?1:
????????????????self.ax.set_ylim(datay[-2]?datay[-1])
????????????else:
????????????????self.ax.set_ylim(datay[0]?datay[-1])
????????????self.ax.yaxis.set_major_formatter(ticker.FormatStrFormatter(‘%.6f‘))

????????xticklabels?=?self.ax.xaxis.get_ticklabels()
????????for?xtick?in?xticklabels:
????????????xtick.set_rotation(25)

????????yticklabels?=?self.ax.yaxis.get_ticklabels()
????????for?ytick?in?yticklabels:
????????????ytick.set_rotation(1.0)

????????self.draw()



class?Window(QtWidgets.QWidget):
????flag?=?1
????count?=?1

????def?__init__(self?parent=None):
????????super().__init__(parent)
????????self.canvas?=?MplCanvas()

????????self.toolbar?=?NavigationToolbar(self.canvas?self)

????????#?Just?some?button
????????self.button1?=?QtWidgets.QPushButton(‘StartPlot‘)
????????self.button1.clicked.connect(self.startplot)

????????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)

????????self.button5?=?QtWidgets.QPushButton(‘Save‘)
????????self.button5.clicked.connect(self.save)

????????self.button6?=?QtWidgets.QPushButton(‘Clear‘)
????????self.button6.clicked.connect(self.clear)

????????self.button7?=?QtWidgets.QPushButton(‘StopPlot‘)
????????self.button7.clicked.connect(self.stopplot)

????????#?set?the?layout
????????layout?=?QtWidgets.QVBoxLayout()
????????layout.addWidget(self.toolbar)
????????layout.addWidget(self.canvas)


????????btnlayout?=?QtWidgets.QHBoxLayout()
????????btnlayout.addWidget(self.button1)
????????btnla

評論

共有 條評論