2015-04-13 5 views
5

मैं जानना चाहता हूं कि मैं x और y अक्ष सीमाओं को कैसे सेट कर सकता हूं जो कि pyqtgraph.GraphicsWindow.addPlot ऑब्जेक्ट के लिए प्रदर्शित होते हैं। मुझे लूप के अंदर बहुत सारे डेटा प्रदर्शित करने की ज़रूरत है (इसलिए pyqtgraph का उपयोग कर) लेकिन मैं ऑटोरेंज को संभावित रूप से गति बढ़ाने की अनुमति देने के विरोध में अपने अक्षों को पूर्ववत करता हूं। उदाहरण के तौर पर,पायथन pyqtgraph ग्राफ पर एक्स और वाई अक्ष सीमाएं कैसे सेट करें, कोई autorange

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 दिया गया)

मुझे लगता है कि यह एक बहुत ही सरल सवाल होना चाहिए, बस प्लॉट करने से पहले अक्ष श्रेणी निर्धारित करना चाहिए।

उत्तर

3

माइकल सही लाइन की तरह दिखना चाहिए।

सबसे आसान तरीका आपकी श्रेणियों को सूची के तत्वों के रूप में निर्दिष्ट करना होगा। p1.setXRange को इस तरह कुछ के साथ बदलें:

p1.setRange(xRange=[5,20]) 

और यही वह है!

में इस वर्ग के प्रलेखन की जाँच करें: http://www.pyqtgraph.org/documentation/graphicsItems/viewbox.html#pyqtgraph.ViewBox.setRange

संबंधित मुद्दे