Matplotlib interaktive Grafik eingebettet in PyQt

Habe ich ein einfaches python-Skript, das bei der Ausführung angezeigt werden sollen, die eine eingebettete matplotlib graph innen eine PyQT-Fenster. Ich habe diese tutorial für die Einbindung und den Betrieb der graph. Abgesehen von einigen unterschieden in der Benennung von Konventionen und in die gesamte Benutzeroberfläche ein Diagramm generiert wird, genau wie im tutorial erwähnt.

Mein problem ist, dass ich möchte, um diese interaktive Grafik ermöglicht Zoomen und verschieben, aber ich möchte diese nur mit der Maus (klicken und ziehen, scroll-Rad, etc) und ohne die toolbar (wie ich finde Sie hässlich).

Widget-Klasse:

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)

Zeichnen-Funktion (starten auf Knopfdruck):

# 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()
Schreibe einen Kommentar