将y轴自动缩放为pyqtgraph中的可见数据

问题描述 投票:1回答:1

我有一个用pyqtgraph制作的时间序列波形图。用户应该能够放大和缩小到各个时间点(x轴),并且y轴应该自动缩放到当前x值范围内可见的任何数据。我相信enableAutoRangesetAutoVisible应该允许这样,但它似乎不起作用。我已经解锁了宽高比,但这似乎没有帮助。

一个最小的例子如下,请有人建议如何使这个工作?理想情况下,当您放大右侧的低幅度数据时,y轴应向上放大,以使正弦波可见。

import numpy                   
import pyqtgraph               

x_data = numpy.linspace(0, 100, num=10000)
y_data = 1000*numpy.sin(x_data)           
y_data[5000:] = numpy.sin(x_data[5000:])  

plt = pyqtgraph.plot(x_data, y_data)      
plt.setMouseEnabled(x=True,y=False)       

vb = plt.getViewBox()                     
vb.setAspectLocked(lock=False)            
vb.setAutoVisible(y=1.0)                
vb.enableAutoRange(axis='y', enable=True)

一个有趣的事情是,如果您缩放到右侧,然后右键单击并选择Y轴>自动,它将按预期工作。

python pyqtgraph
1个回答
0
投票

每次变焦变化时,我都会通过设置enableAutoRangesetAutoVisible来实现它。

对于您的代码,它应该如下所示:

def setYRange(self, (x_range_start, x_range_end)):
    self.enableAutoRange(axis='y')
    self.setAutoVisible(y=True)

vb.sigXRangeChanged.connect(setYRange)
© www.soinside.com 2019 - 2024. All rights reserved.