Ich habe Diagramme von 3-Achsen-Beschleunigungsmesser-Zeitreihendaten (t, x, y, z) in separaten Unterzeichnungen, die ich zusammen zoomen möchte. Das heißt, wenn ich das Werkzeug "Auf Rechteck zoomen" für ein Diagramm verwende, zoomen alle 3 Diagramme zusammen, wenn ich die Maus loslasse.
Zuvor habe ich einfach alle 3 Achsen in einem einzigen Diagramm mit verschiedenen Farben gezeichnet. Dies ist jedoch nur bei kleinen Datenmengen nützlich: Ich habe über 2 Millionen Datenpunkte, sodass die letzte gezeichnete Achse die beiden anderen verdeckt. Daher sind separate Nebenhandlungen erforderlich.
Ich weiß, dass ich matplotlib / pyplot-Mausereignisse erfassen kann (http://matplotlib.sourceforge.net/users/event_handling.html), und ich weiß, dass ich andere Ereignisse erfassen kann (http://matplotlib.sourceforge.net/api/backend_bases_api) .html # matplotlib.backend_bases.ResizeEvent), aber ich weiß nicht, wie ich feststellen kann, welcher Zoom für einen Unterplot angefordert wurde und wie ich ihn auf den beiden anderen Unterplots replizieren soll.
Ich vermute, ich habe alle Teile und brauche nur diesen einen letzten wertvollen Hinweis ...
-BobC
quelle
Antworten:
Der einfachste Weg, dies zu tun, ist die Verwendung der Schlüsselwörter
sharex
und / odersharey
beim Erstellen der Achsen:from matplotlib import pyplot as plt ax1 = plt.subplot(2,1,1) ax1.plot(...) ax2 = plt.subplot(2,1,2, sharex=ax1) ax2.plot(...)
quelle
Sie können dies auch tun
plt.subplots
, wenn dies Ihr Stil ist.fig, ax = plt.subplots(3, 1, sharex=True, sharey=True)
quelle
Interaktiv funktioniert dies auf separaten Achsen
for ax in fig.axes: ax.set_xlim(0, 50) fig.draw()
quelle