【发布时间】:2014-06-11 03:23:14
【问题描述】:
假设我在 pyqtgraph 中创建了两个视图\绘图,然后将它们链接起来。 使用线条
p2.setYLink('Plot1')
p2.setXLink('Plot1')
问题是,当我们链接视图时,两个视图的范围相等,这引发了一个问题,因为一个图似乎被过度缩小或放大。 我们只想将视图链接在一起以进行缩放,但不希望范围随着绘图的变化而变化。
以下是直观地解释问题的示例代码
import sys
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
#QtGui.QApplication.setGraphicsSystem('raster')
try:
app = QtGui.QApplication(sys.argv)
except RuntimeError:
app = QtCore.QCoreApplication.instance()
x1 = [1,2,3,4,5]
y1 = x1
x2 = [10,20,30,40,50]
y2 = x2
win = pg.GraphicsWindow(title="pyqtgraph example: Linked Views")
win.resize(800,600)
win.addLabel("Linked Views", colspan=2)
win.nextRow()
p1 = win.addPlot(x=x1, y=y1, name="Plot1", title="Plot1")
p2 = win.addPlot(x=x2, y=y2, name="Plot2", title="Plot2: Y linked with Plot1")
p2_state = p2.vb.getState()
p1_state = p1.vb.getState()
p2.setLabel('bottom', "Label to test offset")
p2.setYLink('Plot1') ## test linking by name
p2.setXLink('Plot1')
app.exec_()
【问题讨论】:
-
您还没有完全指定您想要的行为:1) 您是否希望两个视图始终显示相同的比例(所以
xmax1-xmin1 == xmax2-xmin2),或者您只是想要比例更改 i> 在一个视图中反映在另一个视图中? 2)如果我缩放一个视图,那么另一个视图应该围绕什么点缩放以匹配?通常缩放是围绕鼠标单击点进行的,但对于其他视图,这是没有意义的。 -
所以我想到的功能是: 1.两个视图不应该显示相同的比例。应该就像他们应该有适合显示情节的视图。在我给出的示例中,如果一个情节在视野中,那么另一个情节就会消失。所以我认为一个状态的改变应该反映在另一个中。 2.好吧,我认为我的痛点是w.r.t。第一种情况。这第二种情况如果它打扰你w.r.t。然后请让我知道更多细节,以便我可以就此提供进一步的意见。
标签: pyqtgraph