我正在使用Python和PyQt4开发一个应用程序,它根据深度绘制不同的参数。绘图包是PyQtGraph,因为它具有良好的动画速度特性。由于我正在绘制深度,我想要反转Y轴。我发现我可以modify the ViewBox class in the PyQtGraph's documentation。所以我已经从我的Python Site Packages文件夹修改了类的代码。但我希望能够从我的应用程序代码中修改类,而不必修改PyQtGraph的代码(invertY=True
)。原因是我想要一些具有倒Y轴的PlotWidgets,而其中一些没有。我有什么办法可以这样做,例如在下面的代码中?我无法通过代码中的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_()
答案 0 :(得分:4)
在您的情况下,curve
是PlotDataItem
。要获取PlotDataItem
的视图框,请使用其getViewBox()
方法。然后,视图框具有invertY
方法。
p = pg.plot()
curve = p.plot()
curve.getViewBox().invertY(True)