Matplotlib – Benutzer gibt numerische Eingabe durch Abbildung ein

Ich möchte, dass meine Figur ein kleines Einstiegsfenster hat, in dem der Benutzer eine Nummer eingeben kann und die aufgezeichneten Daten so viele Minuten überspannen. Wenn sie 30 betreten, werden sie ein 30-minütiges Zeitfenster betrachten, wenn sie 5 eingeben, greift matplotlib das auf, die Daten werden getrimmt und es werden nur 5 Minuten Daten angezeigt.

Wie kann ich das machen? Ich habe bemerkt, dass die Leute auf SO empfehlen, TkAgg zu benutzen, gibt es einen Weg, dies ohne es zu tun? Wenn ich TkAgg verwende, kannst du mich auf ein minimales Beispiel hinweisen, das dies in einer interaktiven Weise macht, dh neue Einträge aufnimmt, die der Benutzer macht?

Vielen Dank

EDIT: Das ist STREAMING Daten, also möchte ich eine dynamische Form haben, wie zB "geben Sie mir letzte 15 Minuten" anstatt "geben Sie mir zwischen 2:10 und 2:25". Auch werde ich die Beschneidung der Daten manuell selbst durchführen, die Gui muss es nicht tun. Die Gui muss nur eine einzige Nummer lesen und mir zur Verfügung stellen.

EINE MEHR DETAIL: Mach dir keine Sorgen darüber, was passiert hinter den Vorhängen, ich weiß, wie man sich darum kümmert. Alles, was ich wissen möchte, ist einfach, wie man eine Nummer aus einem Textfeld auf einer Figur in Matplotlib liest.

  • Minor Zecken in Matplotlib's Farbleiste
  • Überlagerung von Wärmekarten in einer Handlung in Python
  • Offsetwert in Matplotlib (Python)
  • Matplotlib Fehler: LaTeX konnte den folgenden String nicht verarbeiten: 'lp'
  • Kann Matplotlib-Animation nicht mit ffmpeg speichern
  • Kein Modul namens pylab auf windows
  • Benutzerdefinierte matplotlib Handlung: Schachbrett wie Tisch mit farbigen Zellen
  • Wie man xtick Etiketten Jahre auf 2 Ziffern in einer Matplotlib-Handlung abkürzen kann
  • One Solution collect form web for “Matplotlib – Benutzer gibt numerische Eingabe durch Abbildung ein”

    Ich glaube nicht, dass Sie tun können, was Sie mit einem Textfeld ohne Verwendung eines Drittanbieter-GUI-Programms wollen. Das folgende Beispiel zeigt, wie ein Schieberegler verwendet werden kann, um die x-Grenzen eines Plots mit nur matplotlib selbst zu ändern.

    Das Beispiel verwendet ein Slider-Widget , um die xlimits zu kontrollieren. Hier finden Sie ein weiteres Beispiel für die Verwendung vieler Widgets.

    import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import Slider # Create some random data x = np.linspace(0,100,1000) y = np.sin(x) * np.cos(x) left, bottom, width, height = 0.15, 0.02, 0.7, 0.10 fig, ax = plt.subplots() plt.subplots_adjust(left=left, bottom=0.25) # Make space for the slider ax.plot(x,y) # Set the starting x limits xlims = [0, 1] ax.set_xlim(*xlims) # Create a plt.axes object to hold the slider slider_ax = plt.axes([left, bottom, width, height]) # Add a slider to the plt.axes object slider = Slider(slider_ax, 'x-limits', valmin=0.0, valmax=100.0, valinit=xlims[1]) # Define a function to run whenever the slider changes its value. def update(val): xlims[1] = val ax.set_xlim(*xlims) fig.canvas.draw_idle() # Register the function update to run when the slider changes value slider.on_changed(update) plt.show() 

    Unten sind einige Plots, die den Schieberegler an verschiedenen Positionen zeigen:

    Default (Start) Position

    Abb. 1

    Setzen Sie den Schieberegler auf einen zufälligen Wert

    Abb. 2

    Einstellen des Schiebereglers auf den Maximalwert

    Abb. 3

    Python ist die beste Programmiersprache der Welt.