현재 Arduino에서 들어오는 데이터가있는 GUI에서 작업 중이며 플롯되고 있습니다. 지금은 지난 50 개의 샘플에 대해 음모를 꾸미고 있습니다. X 축의 크기를 늘릴 수있는 방법을 찾았지 만, 데이터가 들어올 때 샘플을 이동하는 대신 시간의 표현이 될 수 있습니다. 나는 또한 x 축 레이블을 어떻게 넣을 수 있는지 알고 싶다. 나는 matplotlib 메소드를 시도했지만 작동하지 않았다.pyqt5를 사용하여 X 축 스크롤
class GUI(QWidget, Ui_DynoTest1):
def __init__(self, parent=None, border = None):
# This is what is used to make the graph.
QWidget.__init__(self, parent)
self.setupUi(self)
self.thread = GetData(self)
self.thread.dataChanged.connect(self.onDataChanged)
self.thread.start()
self.torque = []
self.horse_power = []
layout = QHBoxLayout()
self.plot = pg.PlotWidget()
layout.addWidget(self.plot)
self.plot.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
self.graphicsView.setLayout(layout)
self.p1 = self.plot.plotItem
self.p1.setLabels(left='Torque')
self.TorqueCurve = self.p1.plot()
self.TorqueCurve.setPen(pg.mkPen(QColor(0,0,0), width=2.5))
self.p2 = pg.ViewBox()
self.HorsePowerCurve = pg.PlotCurveItem()
self.HorsePowerCurve.setPen(pg.mkPen(QColor(0, 0, 255), width=2.5))
self.p2.addItem(self.HorsePowerCurve)
self.p1.scene().addItem(self.p2)
self.p1.showAxis('right')
self.p1.getAxis('right').setLabel('HorsePower', color='#0000ff')
self.p1.getAxis('right').linkToView(self.p2)
self.p1.vb.sigResized.connect(self.updateViews)
if len(self.torque) < 50:
self.torque.append(Torque)
else:
self.torque[:-1] = self.torque[1:] + [Torque]
if len(self.horse_power) < 50:
self.horse_power.append(HorsePower)
else:
self.horse_power[:-1] = self.horse_power[1:] + [HorsePower]
self.TorqueCurve.setData(self.torque)
self.HorsePowerCurve.setData(self.horse_power)
self.updateViews()
x 축이 예를 들어 1,2,3, ... 50, 그리고 2,3,4, ... 51 및 다른 시간 3, 4,5, .., 52. 맞지? – eyllanesc
제공하는 코드는'pg'를 정의하지 않습니다. 그게 뭐야? –
@PaulCornelius pg는 pyqtgraph – eyllanesc