python-在PyQtGraph中反转Y轴

我正在使用Python和PyQt4开发一个应用程序,该应用程序针对深度绘制不同的参数.由于具有良好的动画速度功能,因此绘图包是PyQtGraph.由于我是针对深度绘制的,因此我想反转Y轴.我发现我可以modify the ViewBox class in the PyQtGraph’s documentation.因此,我从Python Site Packages文件夹修改了该类的代码.但是我希望能够从我的应用程序代码中修改该类,而不必修改PyQtGraph的代码(invertY = True).原因是我想要一些带有反转Y轴的PlotWidget,而有些却没有.例如,在下面的代码中,我是否可以这样做?我无法通过代码getting the ViewBox做到这一点:

import sys
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import random
import time

app = QtGui.QApplication([])
p = pg.plot()
curve = p.plot()

##initialize the arrays
data = []
data.append(random.random())
n = []
n.append(time.clock())

##define the plotting function
def update():

    data.append(data[-1] + 0.2 * (0.5 - random.random()))
    n.append(time.clock())
    curve.setData(data,n)
    time.sleep(0.1)

timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(0)

if __name__ == '__main__':

    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()

解决方法:

在您的情况下,曲线是PlotDataItem.要获取PlotDataItem的视图框,请使用其getViewBox()方法.然后,视图框具有invertY方法.

p = pg.plot()
curve = p.plot()
curve.getViewBox().invertY(True)
上一篇:python-C Qt代码段的等效PyQt代码


下一篇:第一次写博客