我不知道如何操作要缩放的绘图。
此图实时绘制随机函数。
我想实时缩放指定区域的绘图。
这段代码是pyqtgraph中的示例代码。此代码适用于固定数据。
这是不是不可能的情节实时移动缩放?
你能帮帮我吗?在
# -*- coding: utf-8 -*-
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
win = pg.GraphicsWindow()
win.setWindowTitle('Scroll and Zoomed Plot')
plotScroll = win.addPlot()
plotScroll.setDownsampling(mode='peak')
plotScroll.setClipToView(True)
curveScroll = plotScroll.plot()
dataRnd = np.empty(100)
ptrDataRnd = 0
def updateScroll():
global dataRnd, ptrDataRnd
dataRnd[ptrDataRnd] = np.random.normal()
ptrDataRnd += 1
if ptrDataRnd >= dataRnd.shape[0]:
tmp = dataRnd
dataRnd = np.empty(dataRnd.shape[0] * 2)
dataRnd[:tmp.shape[0]] = tmp
curveScroll.setData(dataRnd[:ptrDataRnd])
LinRegionItem = pg.LinearRegionItem([0,100])
LinRegionItem.setZValue(-10)
plotScroll.addItem(LinRegionItem)
win.nextRow()
plotZoom = win.addPlot(title="Zoomed graph for Random plot ")
plotZoom.plot(dataRnd, pen=(255,255,255,200))
def updatePlot():
plotZoom.setXRange(*LinRegionItem.getRegion(), padding=0)
def updateRegion():
LinRegionItem.setRegion(plotZoom.getViewBox().viewRange()[0])
LinRegionItem.sigRegionChanged.connect(updatePlot)
plotZoom.sigXRangeChanged.connect(updateRegion)
updatePlot()
# update all plots
def update():
updateScroll()
timer = pg.QtCore.QTimer()
timer.timeout.connect(update)
timer.start(50)
## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
我通过添加“updateZoom()”函数解决了这个问题,该函数标记为“\added..”。
修订后的代码如下所示。
另一个问题出现在下面的控制台消息中。
原因是什么?
你能帮帮我吗?在
控制台消息:
C:\Python27\lib\site packages\pyqtgraph\graphicsItems\AxisItem.py:841:RuntimeWarning:在双标量中遇到溢出 X刻度=-边界高度()/dif
C: \Python27\lib\site packages\pyqtgraph\graphicsItems\AxisItem.py:847:RuntimeWarning:在双标量中遇到无效值 xRange=[x*xScale-x英寸的偏移量自我范围]
C: \Python27\lib\site packages\pyqtgraph\graphicsItems\AxisItem.py:871:RuntimeWarning:在双标量中遇到无效值 x=(v*x刻度)-偏移
进程结束,退出代码为0
我也解决了这个问题。我修改了代码如下所示。在
修订前:
修订代码:
^{pr2}$我想知道纽比阵法的惯例。 “dataRnd[:ptrDataRnd]”的含义是指定从0到ptrDataRnd的范围。我错了吗? 请告诉我真相。在
相关问题 更多 >
编程相关推荐