我试着策划。我需要x轴作为时间,我写这个方法。但我不能做出这样的结果
rtctime = np.array([17.02.31, 17.02 37, 17.02.38])
如何按元素组合rtchour、rtcminute、rtcsond数组,当我合并数组时,在图形的x轴上没有问题
from matplotlib.backends.backend_qt5agg import (NavigationToolbar2QT as NavigationToolbar)
import numpy as np
import traceback
class Main(QtWidgets.QMainWindow, Ui_MainWindow):
rtcdate = np.array([])
rtchour = np.array([])
rtcminute = np.array([])
rtcsecond = np.array([])
rtctime = np.array([])
data = np.array([])
def __init__(self,parent=None):
super(Main, self).__init__(parent)
self.setupUi(self)
self.DataReader()
self.pushButton_data.clicked.connect(self.Graph)
def DataReader(self):
graph_data = open("DATA.TXT", "r").read()
downLines = graph_data.split('\n')
for line in downLines:
try:
if len(line) > 1:
valuedate, valuehour,valueminute, valuesecond,\
value= line.split(' ')
self.rtcdate = np.append(self.rtcdate,valuedate)
self.rtchour = np.append(self.rtchour,valuehour)
self.rtcminute = np.append(self.rtcminute,valueminute)
self.rtcsecond = np.append(self.rtcsecond,valuesecond)
self.data = np.append(self.data,value)
except:
print("Error:")
print(traceback.format_exc())
continue
def EKGDatas(self):
self.MatplotWidget.canvas.axes.clear()
self.MatplotWidget.canvas.axes.plot(self.rtcsecond, self.ekgdata)
self.MatplotWidget.canvas.axes.tick_params(axis='x', rotation=70)
self.MatplotWidget.canvas.draw()
self.window.show()
if __name__== '__main__':
import sys
App = QtWidgets.QApplication(sys.argv)
PrecautionApp = Main()
PrecautionApp.show()
sys.exit(App.exec())
# ------------------------------------------------------
# -------------------- matplotwidget.py --------------------
# ------------------------------------------------------
from PyQt5.QtWidgets import *
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MatplotWidget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.canvas = FigureCanvas(Figure())
vertical_layout = QVBoxLayout()
vertical_layout.addWidget(self.canvas)
self.canvas.axes = self.canvas.figure.add_subplot(111)
self.setLayout(vertical_layout)
数据.TXT
30/07/2019 17 02 31 129
30/07/2019 17 02 37 1
30/07/2019 17 02 38 154
30/07/2019 17 02 39 147
我在做一个大项目。项目中有pyqt5设计器代码。 我的目标是根据data.txt文件中的日期和时间绘制数据。完成后,我将分析图表。因此,根据我的研究,我已经达到需要将我的系列转换为numpy。我将把它合并到一个数组中,在图形的x轴上显示它(小时、分钟、秒),并将它发送到plot函数
一个选项是转换为
datetime
对象,该对象matplotlib
可用于打印。您可能需要重新考虑代码的结构,但这将大大简化您的工作,并确保在绘制数据时,从59分钟过渡到1小时时,坐标轴是一致的像这样的东西会给你你的时间清单:
相关问题 更多 >
编程相关推荐