2013-04-24 16 views
7

Ho creato un semplice script python che durante l'esecuzione dovrebbe visualizzare un grafico matplotlib incorporato all'interno di una finestra PyQT. Ho usato il tutorial this per incorporare ed eseguire il grafico. A parte alcune differenze nelle convenzioni di denominazione e nell'interfaccia utente globale, il mio grafico è generato esattamente come quello nel tutorial menzionato.Grafico interattivo Matplotlib incorporato in PyQt

Il mio problema è che mi piacerebbe rendere questo un grafico interattivo che consente di zoomare e trascinare, ma mi piacerebbe farlo solo con il mouse (facendo clic e trascinando, scroll wheel, ecc.) E senza la barra degli strumenti (come la trovo brutta).

Widget Classe:

class MplCanvas(FigureCanvas): 
    """ 
    Creates a canvas on which to draw our widgets 
    """ 
    def __init__(self): 
     self.fig = Figure() 
     self.ax = self.fig.add_subplot(111) 

     FigureCanvas.__init__(self, self.fig) 
     FigureCanvas.setSizePolicy(self, QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding) 
     FigureCanvas.updateGeometry(self) 

class marketdephWidget(QtGui.QWidget): 
    """ 
    The market deph graph 
    """ 
    def __init__(self, parent = None): 
     QtGui.QWidget.__init__(self, parent) 
     self.canvas = MplCanvas() 
     self.vbl = QtGui.QVBoxLayout() 
     self.vbl.addWidget(self.canvas) 
     self.setLayout(self.vbl) 

funzione Tracciando (eseguito su premere il pulsante):

# initialize the mplwidgets 
def PlotFunc(self): 
    randomNumbers = random.sample(range(0, 10), 10) 
    self.ui.widget.canvas.ax.clear() 
    self.ui.widget.canvas.ax.plot(randomNumbers) 
    self.ui.widget.canvas.draw() 

risposta

2

E 'stato un po', ma mi stava lavorando su un problema simile. Ho un example here. Forse questo aiuterà.

Il programma utilizza PySide, tuttavia non dovrebbe essere un problema.

per eseguire il programma

python pyStocker.py 

Si vedrebbe un widget a comparsa e in alto a sinistra vedrete una scatola TextEdit. Basta inserire GOOG o qualche altro simbolo valido e premere Invio. Il grafico si popolerà con i dati dello stock. La barra di scorrimento in basso cambia il grafico in tempo reale.

Problemi correlati