Wenn Ihr Ziel ist, eine widget.Button
für jedes Teilplot verwenden, dann ist die Situation sehr einfach. Um eine Schaltfläche zu erstellen, müssen Sie ihr eine Axes
Instanz übergeben und die Schaltfläche belegt diesen Bereich. Sie müssen daher so viele neue Achsen erstellen, wie Sie Unterplots haben, und ihre Koordinaten entsprechend angeben. Erstellen Sie dann Ihre Schaltflächen, die verschiedene Callback-Funktionen haben können.
zum Beispiel:
from matplotlib.widgets import Button
def callback1(event):
print "you've clicked button 1"
def callback2(event):
print "you've clicked button 2"
fig = plt.figure()
ax1 = plt.subplot2grid((2,2),(0, 0))
ax2 = plt.subplot2grid((2,2),(1,1))
# create axes to receive the buttons
# adjust the coordinates to suit your needs
# coordinates are [left, bottom, width, height]
b1ax = plt.axes([0.5, 0.8, 0.2, 0.1])
b1 = Button(b1ax, 'Button 1')
b1.on_clicked(callback1)
b2ax = plt.axes([0.7, 0.5, 0.2, 0.1])
b2 = Button(b2ax, 'Button 2')
b2.on_clicked(callback2)
plt.show()
Dokumentation für widget.Button
: http://matplotlib.org/api/widgets_api.html#matplotlib.widgets.Button
Umsetzungsbeispiel: http://matplotlib.org/examples/widgets/buttons.html
Sie wickeln vielleicht könnte Ihre Funktion und dann die Anzahl der Zeit zählen Sie Führen Sie die Funktion bereits aus. Mit diesen Informationen könnten Sie einen anderen Rückruf aufrufen? – iFlo
Thnx für Antwort, Haben Sie bitte ein Beispiel? –
Ich denke nicht, dass das möglich ist, aber Sie könnten es wahrscheinlich in zwei Schritten tun: Die Callback-Funktion ermittelt aus Ax (Subplot) das Ereignis wurde generiert und basierend darauf eine zweite Funktion aufrufen, die für jedes der beiden unterschiedlich ist Nebenhandlungen. Alles hängt davon ab, welche Art von Event Sie bearbeiten möchten –