Messwertauswertung

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.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Ich denke EPD wird als Distribution neben der "normalen" Python installiert. Du musst also den Python Interpreter aus dem EPD Installationspfad neben.
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Wenn ich jedoch ins Terminal gehe, dort python lade und dann

Code: Alles auswählen

>>> import matplotlib
eingebe, schluckt der das ohne Fehlermeldung. Mein Editor ist Komodo IDE.
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

So, habe EPD nun mit Komodo zum Laufen gebracht und den Quelltext, der oben freundlicherweise geboten wurde, ein wenig "aufgebort":

Code: Alles auswählen

#!/usr/bin/python

#Variablendefinitionen
mittel=0
anzahlElemente=0
kommentarZeilen=0
dateiName="Messung.lvm"
auszuwertendeSpalte=0
augewerteteSpalte=0

import numpy as np
import matplotlib.pyplot as plt

print "Es wird die Datei ", dateiName, "ausgewertet."
kommentarZeilen = input("Bitte geben Sie an, wie viele Zeilen als Kommentar uebersprungen werden sollen (normalerweise 32): ")
auszuwertendeSpalten = input("Bitte geben Sie ein, wie viele Spalten vorhanden sind: ")

while augewerteteSpalte != auszuwertendeSpalte:
    zeit, a = np.loadtxt(dateiName, skiprows=kommentarZeilen, usecols=(0,ausgewerteteSpalte), unpack=True, delimiter='\t')
    plt.plot(zeit, a, linewidth=0.02)
    plt.show()
    ausgewerteteSpalte = ausgewerteteSpalte + 1

Leider zeigt der mir die Plots nicht an. Was habe ich falsch gemacht?
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Die Auswertung klappt soweit nun, außer dass die Schleife oben scheinbar nicht abgearbeitet wird. Hat da jemand ne Idee?
BlackJack

@Lateiner: Lass Dir doch einfach mal die beiden Werte ausgeben die da verglichen werden. Und dann musst Du nur noch einmal *genau* auf den Quelltext zu schauen um fest zu stellen warum die beide an der Stelle immer 0 sind. ;-)

Wenn man eine Laufvariable hat und die Anzahl der Durchläufe vor Schleifeneintritt bereits kennt, sollte man ausserdem eine ``for``-Schleife anstelle einer ``while``-Schleife verwenden.

PS: Der Fehler wäre Dir übrigens selbst sehr schnell aufgefallen wenn Du nicht alle möglichen Namen am Anfang an teilweise sinnlose Werte bindest.
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Wenn Dummheit bestraft würde...
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Dankeschön, funktioniert nun perfekt :D
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Hm. Kann ich den Plot anstatt mit

Code: Alles auswählen

plt.show()
auch einfach in eine pdf (mein bevorzugtes Ausgabeformat) abspeichern?
BlackJack

@Lateiner: Wenn ein Backend verwendet wird, das PDF kann, dann geht das, ja.
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

matplotlib pdf backend r8292 ist vorhanden.
Aber wie setze ich das um?
BlackJack

Die API-Beschreibung zu `pyplot` ist zwar recht umfangreich, wenn man auf der Seite aber nach "save" sucht, findet man recht schnell:matplotlib.pyplot.savefig().
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Ah, nun funktioniert's so, wie ich es mir vorgestellt habe :D

Danke!
Lateiner
User
Beiträge: 46
Registriert: Dienstag 20. September 2011, 16:56

Hm. Wie kann ich denn eine .py in eine Binary überführen? Hab dazu zwar schon mal was gehört, jedoch bis heute noch nichts verwertbares, bzw. etwas, das ich verstehen würde...
hat da jemand schon Erfahrungen gemacht?
Antworten