Messwerte visualisieren mit matplotlib

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
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Hallo Pythonforum,

ich habe mir jetzt eine Stunde die Matplotlib angeschaut und komme auf keinen grünen Zweig. Ich kann die Beispiele zwar ausprobieren nur verstehen tu ich sie leider nicht. Außerdem entsprechen sie überhaupt nicht dem was ich machen möchte. Ich möchte lediglich eine Tabelle von Daten die ich über der Zeit aufgenommen habe
als Kurven, jede in einem Diagramm untereinander darstellen.

Z.B.:
Zeit wert1 wert2...
43.1 25.3 345.6
43.2 34.6 2435.6
43.3 34.3 34.6
43.4 65.6 3456.23

In den Beispielen steht nirgends wie die Daten aussehen die dort angezeigt werden.. oder ich ich bin zu blind.. wie auch immer.
Hat jemand von euch schon einmal so etwas gemacht.

Danke im Vorraus und ein schönes WE ;-)
alpha
BlackJack

@alpha: Wenn Du die Beispiele ausprobieren kannst, dann hast Du doch die Daten, ohne Daten würde ja nichts angezeigt!? Also kannst Du Dir die Beispieldaten doch auch anschauen!?

Und in der Beispielgallerie auf der Webseite ist ja zu jedem Beispiel auch der Quelltext dabei.

Wie hast Du die Daten denn vorliegen? In einer Datei? In welchem Format?
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Hallo BlackJack,

die Beispiele die ich laufen lassen konnte greifen auf berechnete Daten zurück.
Ich habe eine .csv file wie oben beschrieben. Zum Beispiel habe ich mir folgendes angeschaut:

Code: Alles auswählen

#!/usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.0, 1.01, 0.01)
s = np.sin(2*2*np.pi*t)

plt.fill(t, s*np.exp(-5*t), 'r')
plt.grid(True)
plt.show()
in der Zeile

Code: Alles auswählen

t = np.arange(0.0, 1.01, 0.01)
wird zum Beispiel die Skalierung eingestellt..

hier wird wohl die Funktion abgebildet

Code: Alles auswählen

s = np.sin(2*2*np.pi*t)
.. nur wie hilft mir das weiter..

In anderen Beispielen
z.B. http://matplotlib.sourceforge.net/examp ... _demo.html
(so ähnlich hätte ich das gerne)

2 Graphen übereinander.. nur eben mit derselben x-Skala

alpha
BlackJack

@alpha: Dann musst Du halt schauen welche Funktionen `numpy` so zur Verfügung stellt um die Daten einzulesen. Und wie man `numpy.array`\s aus anderen "slice"t.

Code: Alles auswählen

import numpy
from matplotlib import pyplot

def main():
    input_data = '''\
43.1 25.3 345.6
43.2 34.6 2435.6
43.3 34.3 34.6
43.4 65.6 3456.23
'''

    data = numpy.fromstring(input_data, sep=' ')
    data.shape = (len(data) // 3, 3)
    pyplot.plot(data[:,0], data[:,1], 'b', data[:,0], data[:,2], 'g')
    pyplot.show()

if __name__ == '__main__':
    main()
Benutzeravatar
DaMutz
User
Beiträge: 202
Registriert: Freitag 31. Oktober 2008, 17:25

hier noch eine minimal Variante.

Code: Alles auswählen

import matplotlib.pyplot as plt

t = [43.1, 43.2, 43.3, 43.4]
y1 = [25.3, 34.6, 34.3, 65.6]
y2 = [345.6, 2435.6, 34.6, 3456.23]

plt.plot(t, y1, 'b-', t, y2, 'g-')
plt.show()
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Hallo zusammen,

so einfach geht das... wenn man weiss wie.
Danke jetzt hab ich mal ne Basis auf der ich experimentieren kann.
8)

Grüße
alpha
Antworten