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()