gpt4 book ai didi

python - pyqtgraphplotwidget在错误区域绘制多个Y轴图

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:49 25 4
gpt4 key购买 nike

我在 QT5 gui 中有一个通过 PlotWidget 连接的嵌入式小部件。我正在尝试绘制 2 个实时数据流:电压 (self.p1) 和电流 (self.p2)。左 Axis 为电压,右 Axis 为电流。到目前为止,我已经将每个数据流与其相关 Axis 关联起来。然而我的问题是当前绘图(self.p2)不在显示的正确区域中。这个特定的图出现在小部件的左上角,它出现在 LHD Axis 之前。最好看图才能看出问题。

查看我

.

我知道问题出在设置函数和 self.p2 (当前)被放置在错误的位置,但我的搜索没有产生答案。有人可以帮忙吗?

用于生成图表的代码,在启动时调用一次:

def pg_plot_setup(self): # not working still on left axis
self.p1 = self.graphicsView.plotItem

# x axis
self.p1.setLabel('bottom', 'Time', units='s', color='g', **{'font-size':'12pt'})
self.p1.getAxis('bottom').setPen(pg.mkPen(color='g', width=3))

# Y1 axis
self.p1.setLabel('left', 'Voltage', units='V', color='r', **{'font-size':'12pt'})
self.p1.getAxis('left').setPen(pg.mkPen(color='r', width=3))

self.p2 = pg.ViewBox()
self.p1.showAxis('right')
self.p1.scene().addItem(self.p2)
self.p1.getAxis('right').linkToView(self.p2)
self.p2.setXLink(self.p1)

# Y2 axis
self.p1.setLabel('right', 'Current', units="A", color='c', **{'font-size':'12pt'}) #<font>&Omega;</font>
self.p1.getAxis('right').setPen(pg.mkPen(color='c', width=3))

用于更新显示的代码通过 QTimer 调用:

def update_graph_plot(self):
start = time.time()
X = np.asarray(self.graph_X, dtype=np.float32)
Y1 = np.asarray(self.graph_Y1, dtype=np.float32)
Y2 = np.asarray(self.graph_Y2, dtype=np.float32)

pen1=pg.mkPen(color='r',width=1.0)
pen2=pg.mkPen(color='c',width=1.0)

self.p1.plot(X,Y1,pen=pen1, name="V", clear=True)
self.p2.addItem(pg.PlotCurveItem(X,Y2,pen=pen2, name="I"))

最佳答案

我找到了埋藏在这里的答案MultiplePlotAxes.py

将此 self.p2.setGeometry(self.p1.vb.sceneBoundingRect()) 添加到函数“update_graph_plot”会在每次更新场景时调整 View 框的大小,但必须在更新循环中。

或将此self.p1.vb.sigResized.connect(self.updateViews)添加到函数“pg_plot_setup”作为设置的一部分,然后它将自动调用此函数

def updateViews(self):
self.p2.setGeometry(self.p1.vb.sceneBoundingRect())

每次 self.p1 更新时调整 View 框 (self.p2) 的大小。 enter image description here

关于python - pyqtgraphplotwidget在错误区域绘制多个Y轴图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com