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

标签 python pyqtgraph

我有一个用 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-Axis>Auto,它会按预期工作。

最佳答案

每次缩放更改时,我都通过设置 enableAutoRangesetAutoVisible 使其工作。

您的代码应该如下所示:

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

vb.sigXRangeChanged.connect(setYRange)

关于python - 将 y 轴自动缩放为 pyqtgraph 中的可见数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51140994/

相关文章:

python - python中的声音(conda)

Python:如何创建 tar 文件并使用外部模块动态压缩它,使用 tarfile 模块中不可用的不同压缩方法?

python - 如何创建带参数的测试类?

python - pyqtgraph 与 pdb 一起使用时的怪异

Python优化算法调整线越过尽可能多的点

python - 对于目录,将子目录中的文件重命名为子目录名+旧文件名到新目录

python - numpy 使用前一行的乘积值作为输入将行与数组的后续行相乘

python - 使用 matplotlib 和 Pandas DataFrame 绘制数据覆盖图

python-2.7 - Pyqtgraph剪辑线

python - pyqtgraph 与 Qt 设计器 : how to add PlotItems to GraphicsLayoutWidget