scipy / matplotlib ginput() probleme

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
franzk
User
Beiträge: 3
Registriert: Dienstag 31. Mai 2011, 19:40

Hallo,

ich arbeite derzeit an einer Datenauswertung und benutze hierfür die scipy libaries.
Aktuell hab ich das Problem, dass ich an meine Messdaten mehrere lineare Regressionen fitten muss, um dies möglichst einfach zu gestalten
wollte ich die einzelnen Regressionsintervalle manuell bestimmen, indem ich die Daten zunächst plotte (mit pylab.plot()), und anschließend mit matplotlib.pyplot.ginput() jeweils mehrere Punkte (insgesamt 12) auswähle die meine Intevalle festlegen.

Mein Problem mit ginput() ist allerdings, dass Ich in die Daten hineinzoomen muss,
wenn ginput() nun aktiviert ist wird allerdings jeder Zoom als speichern eines Datenpunkt interpetiert, d.h. wenn ich 12 mal
in das Bild hineinzoome hab ich nicht mehr die Möglichkeit Punkte festzulegen da ginput() bereits einen array mit Messpunkten zurückgibt.
Ich hab bereits probiert die Mauskonfiguration mit extra Parametern umzukonfigurieren, aber bisher ist es mir nicht gelungen das Problem zu umgehen.

Ein weiteres Problem welches Ich habe ist das Einlesen von Datensätzen mit numpy.genfromtxt()
Meine Daten sind leider mit "," als Dezimaltrennzeichen gespeichert. Das Problem ist wenn ich die Daten mit genfromtxt() einlese besteht mein
Numpy Array nur aus NaN Werten, gibt es eine elegante Möglichkeit dies zu umgehen ?
Rekrul
User
Beiträge: 78
Registriert: Dienstag 7. Dezember 2010, 16:23

Hallo und willkommen im Forum,

afaik bietet ginput die Möglichkeit anzugeben, welche Maustaste man zum Auswählen der Punkte nimmt. Ausserdem könnte das hier interessant für dich sein:
http://matplotlib.sourceforge.net/api/pyplot_api.html?highlight=ginput#matplotlib.pyplot.ginput hat geschrieben:The keyboard can also be used to select points in case your mouse does not have one or more of the buttons. The delete and backspace keys act like right clicking (i.e., remove last point), the enter key terminates input and any other key (not already used by the window manager) selects a point.
Wenn das nicht funktioniert dann kannst du dir ja das hier mal anschauen: Event handling
franzk
User
Beiträge: 3
Registriert: Dienstag 31. Mai 2011, 19:40

Danke für die Antwort, hab mir das Event handling von Matplotlib mal angeschaut und das Problem jetzt mit
Hilfe der mpl_connect() Methode gelöst.

Wollte nochmal fragen ob mir jemand hierbei noch helfen könnte
franzk hat geschrieben: Ein weiteres Problem welches Ich habe ist das Einlesen von Datensätzen mit numpy.genfromtxt()
Meine Daten sind leider mit "," als Dezimaltrennzeichen gespeichert. Das Problem ist wenn ich die Daten mit genfromtxt() einlese besteht mein
Numpy Array nur aus NaN Werten, gibt es eine elegante Möglichkeit dies zu umgehen ?
Hab das Problem bisher immer so gelöst das ich die Daten als listen eingelesen habe,
und dann mit str.replace die Ausdrücke ersetzt habe. Dies ist bei meinen aktuellen Messdaten leider ziemlich umständlich,
da die Daten an sich ziemlich groß sind (so 30 mb pro Messung) und es deshalb ziemlich lange dauert.
Antworten