Interaktiven Graph erstellen

Django, Flask, Bottle, WSGI, CGI…
Antworten
peachli
User
Beiträge: 18
Registriert: Dienstag 13. März 2018, 20:21

Hallo erst einmal!
Ich habe mal ein paar allgemeine Fragen zur Visualisierung von Daten mit Python. Ich arbeite hin und wieder mit Messwerten. z.B. habe ich mir gerade kleinen BLDC Prüfstand zusammengebaut und ziemlich viele Messwerte aufgenommen. Zuerst habe ich die Messwerte in eine Excel-Datei geschrieben und jedes Diagramm per Hand eingefügt. Das ging ganz gut. Im nächsten Schritt habe ich es dann mit Matlab gemacht, damit ich nur einmal starten muss und mir Matlab mit fortlaufender Nummerierung die entsprechenden PDF-Dateien erzeugt in deren überschrift auch direkt alle Werte usw. stehen und die Diagramme auch auf die Maximalwerte skaliert sind.
Aber irgendwie ist das mit Matlab trotzdem viel zu umständlich, auch wenn es soweit klappt. Das Auslesen der Excel oder CSV-Dateien, das plotten und dann noch das Abspeichern in der richtigen Auflösung ...
Nun habe ich zufällig ein Video über Python gesehen und habe selbst mal ein paar Kleinigkeiten ausprobiert. Ich war echt erstaunt wie schnell, teilweise Intuitiv das aufgebaut ist.
Jedenfalls bin ich so begeistert, dass ich damit unbedingt weiter arbeiten möchte. Jetzt hab ich auch direkt eine Idee was ich machen will, aber ehrlich gesagt noch keine Ahnung von Python. Deshalb würde ich gerne mal fragen ob die folgenden Dinge die ich mir vorstelle mit Python realisierbar sind und was ich mir dafür am besten angucken sollte eurer Meinung nach.

Ich habe einige Dateien mit teilweise 13.000 Zeilen und einigen Channeln aus denen ich mir Kurven generieren könnte. Gerne würde ich die Datei automatisch einlesen lassen. Dann würde ich gerne im Diagrammtitel auch den Namen der Datei und anderen Informationen. Da ich verschiedene Größen habe möchte ich nicht alle Kurven gleichzeitig darstellen lassen, sondern z.B. je nach gewünschter größe die Kurve per Checkbox ein und ausblenden, so dass auch die dazugehörigen Achsen mit ein und ausgeblendet werden. Oder eben mehrere Y-Achsen.

Was mir aber besonders wichtig wäre, wäre das interaktive reinzoomen ins Diagramm. Da die Kurve sehr lang und groß ist, kann man bestimmte Details nur durchs vergrößern erkennen. Wenn ich bei Excel mit z.B. eine Stelle genauer angucken möchte, muss ich jedesmal die entsprechnenden Messwerte raus nehmen. Vielleicht kann man bei Python ein Diagramm erstellen in welchem man direkt auf eine Stelle zoomen kann, so dass man aber noch die Achsen sieht? Das wäre eine echte Arbeitserleichterung.
Oder gibt es eine Möglichkeit z.B. einen Graphen per Animation im Zoom live anzuzeigen? Also im Hintergrund der komplette Verlauf über die gesamte Messzeit und dann ein kleiner punkt der diese Kurve entlang fährt und den vergrößerten Ausschnitt als Animation in der Oberen Ecke in einem kleineren Fenster anzeigt?

Das klingt jetzt alles ein bisschen übertrieben und überflüssig, aber das würde mir bei vielen Dingen die Arbeit und Interpretation schon extrem vereinfachen. Falls Jemand links mit vielleicht sogar genau solchen beispielen hat, wäre ich sehr dankbar :)
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Matplotlib bietet ein bißchen Interaktivität (Zoomen, etc). Natürlich nicht von sich aus so individuell, wie Du Dir das wünschst. Dazu wäre dann einiges an GUI-Programmierung nötig, was schon ein Fortgeschrittenenthema wäre. Fürs Lesen von Daten gibt es Pandas, Numpy, OpenPyxl falls es Excel sein soll.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Geht alles mit Python und Matplotlib,
folgende Möglichkeiten hast du:
  1. Für die verschiedenen Aufgaben die du hast, schreibst du dir jeweils ein eigenes kleines Python-Skript. Am Ende vom Skript geht ein Matplotlib-Fenster auf. Im Matplotlib-Plot kannst du sehr komfortabel reinzoomen, die Ansicht verschieben, mit Vor- und Zurück-Button.
  2. Du schreibst dir eine eigene kleine häßliche TK-GUI, die aussieht wie Windows-Anwendungen vor über 20 Jahren, mit Knöpfen und Dialogen für deine Aufgaben.
  3. Du schreibst mit PyQT eine komfortable Anwendung zum Auswerten deiner Daten, mit mehreren andockbaren Fenstern und eigener Skripting Schnittstelle.
Der Aufwand von 1 zu 2 zu 3 wächst jeweils um eine Größenordnung. Matplotlib kannst du für alle drei Möglichkeiten benutzen.
a fool with a tool is still a fool, www.magben.de, YouTube
Antworten