Я хотел бы знать, как я могу установить пределы осей x и y, которые отображаются для объекта pyqtgraph.GraphicsWindow.addPlot. Мне нужно отобразить много данных внутри цикла (следовательно, используя pyqtgraph), но я бы предпочел заранее выделить свои оси, а не позволить автодиапазон потенциально увеличить скорость. В качестве примера,
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
app = QtGui.QApplication([])
win = pg.GraphicsWindow(title="My plotting examples")
win.resize(1000,600)
win.setWindowTitle('pyqtgraph example: Plotting')
p1 = win.addPlot(title="plot1")
p2 = win.addPlot(title="plot2")
curve1 = p1.plot(pen='y')
curve2 = p1.plot(pen='r')
curve3 = p2.plot(pen='b')
x = np.linspace(0,10,1000)
x_current = x[0]
p1.setXRange((5,20), padding=0)
for i in range(1,len(x)):
x_current = np.append(x_current,x[i])
curve1.setData(x_current,np.sin(x_current))
curve2.setData(x_current,np.cos(x_current))
curve3.setData(x_current,np.tan(x_current))
app.processEvents()
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
Проблема кроется в строке p1.setXRange((5,20),padding=0)
. Это приводит к ошибке: TypeError: setXRange() принимает не менее 3 аргументов (3 задано)
Я думаю, что это должен быть очень простой вопрос, просто установить диапазоны осей перед построением графика.