Seite 1 von 1

Laufendes Diagramm mit Matplotlib

Verfasst: Dienstag 1. September 2009, 20:13
von Poseidonius
Hallo zusammen,

1. Bekommt man auch ohne gtk, qt usw. mit Matplotlib ein Diagramm hin, dass nacheinander Messwerte zu einem bestehenden Plot hinzufügt?

2. Zudem habe ich das Problem, dass wenn ich mit

Code: Alles auswählen

import matplotlib.pyplot as plt

plt.figure(1) 
plt.plot([1,2,3])
plt.show()
print "Fertig"
ein Fenster aufploppen lasse, sich dies in den Vordergrund "drängelt" und das Programm erst weiterläuft, spricht "fertig" ausgibt, wenn das Fenster vom Anwender wieder geschlossen wurde.

Würde mich über ein Stichwort oder einen Link sehr freuen.

Vielen Dank

Re: Laufendes Diagramm mit Matplotlib

Verfasst: Dienstag 1. September 2009, 20:24
von cofi
Poseidonius hat geschrieben: 1. Bekommt man auch ohne gtk, qt usw. mit Matplotlib ein Diagramm hin, dass nacheinander Messwerte zu einem bestehenden Plot hinzufügt?
Indem du in die gleiche Figur nochmal zeichnest. Wenn du praeziser wirst, kann man dir besser helfen.
Poseidonius hat geschrieben: 2. Zudem habe ich das Problem, dass wenn ich mit
ein Fenster aufploppen lasse, sich dies in den Vordergrund "drängelt" und das Programm erst weiterläuft, spricht "fertig" ausgibt, wenn das Fenster vom Anwender wieder geschlossen wurde.
Und was willst du stattdessen? Das ist genau das was ``show`` macht. Willst du eine Bilddatei plotten? Dazu gibt es ``savefig``.

Vllt hilft dir auch die Gallerie: http://matplotlib.sourceforge.net/gallery.html

Re: Laufendes Diagramm mit Matplotlib

Verfasst: Dienstag 1. September 2009, 20:46
von CM
cofi hat geschrieben:
Poseidonius hat geschrieben: 1. Bekommt man auch ohne gtk, qt usw. mit Matplotlib ein Diagramm hin, dass nacheinander Messwerte zu einem bestehenden Plot hinzufügt?
Indem du in die gleiche Figur nochmal zeichnest. Wenn du praeziser wirst, kann man dir besser helfen.
Das ist eine mögliche, doch sicher eine langsame Lösung. Eine Einführung gibt es auf der scipy-Seite. Details im Download von MPL (unter: matplotlib-0.9x.x/examples/animation).

Bzgl. show() möchte ich aber nichts hinzufügen.

HTH
Christian

Verfasst: Dienstag 1. September 2009, 21:05
von HerrHagen
Indem du einfach nochmal plot aufrufst bevor du das Fenster mit show anzeigst.
Wenn du mit der Shell arbeitest sucht du vlt. auch pylab.interactive(1). Damit wird das Fenster schon beim ersten plot aufgerufen. Du kannst es dann offen lassen und einen weiteren plot in das Diagram zeichen (mit plot).

Verfasst: Mittwoch 2. September 2009, 07:42
von Darii
eventuell ist auch Chaco aus der EPD was für dich, das kann das auf jeden Fall, zumindest gibts da sowas im Beispielordner.

Verfasst: Mittwoch 2. September 2009, 11:23
von Poseidonius
Hallo zusammen,

vielen Dank für die schnellen Hinweise!

ich lese Messdaten von einer Erfassungskarte ein und möchte diese "online" darstellen, sprich in einem Diagramm die jeweils neusten Daten hinzufügen.
Mit show() ging das eben nicht, weil das Fenster geschlossen werden musste, bevor das Skript weiter bearbeitet wurde. Wo ist mein Denkfehler?

Danke für den Tipp mit Chaco und Scipy, ich schaue mir die Sachen heute Nachmittag an! Wenn ich Wert auf Geschwindigkeit lege, nach welchen Stichworten sollte ich dann suchen?

Dank Euch und einen schönen Tag noch

Poseidonius

Verfasst: Mittwoch 2. September 2009, 11:26
von ms4py
Poseidonius hat geschrieben: Mit show() ging das eben nicht, weil das Fenster geschlossen werden musste, bevor das Skript weiter bearbeitet wurde. Wo ist mein Denkfehler?
Mit

Code: Alles auswählen

matplotlib.interactive(True)
läuft dein Code nach dem show() weiter (wie bereits erwähnt!)

Verfasst: Mittwoch 2. September 2009, 13:49
von Poseidonius
Der Hinweis auf die scipy Seite hat geholfen !

Danke für die Unterstützung