我正在使用 Python 和 PyQt4 开发一个应用程序,该应用程序根据深度绘制不同的参数。绘图包是 PyQtGraph,因为它具有良好的动画速度特性。由于我正在根据深度进行绘图,因此我想反转 Y 轴。我发现我可以修改PyQtGraph文档中的ViewBox类 http://www.pyqtgraph.org/documentation/graphicsItems/viewbox.html。因此,我修改了 Python Site Packages 文件夹中的类代码。但我希望能够从我的应用程序代码中修改该类,而不必修改 PyQtGraph 的代码(invertY=True
)。原因是我想要一些具有倒置 Y 轴的 PlotWidget,而其中一些则没有。有什么办法可以做到这一点,例如在下面的代码中?我没能做到获取ViewBox http://www.pyqtgraph.org/documentation/graphicsItems/plotitem.html#pyqtgraph.PlotItem在代码中:
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_()
就你而言,curve
is a PlotDataItem
。获取a的视图框PlotDataItem
使用它的getViewBox()
方法。然后视图框有一个invertY https://pyqtgraph.readthedocs.io/en/latest/api_reference/graphicsItems/viewbox.html#pyqtgraph.ViewBox.invertY method.
p = pg.plot()
curve = p.plot()
curve.getViewBox().invertY(True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)