Seite 1 von 1

matplotlib: CSV Dateien

Verfasst: Mittwoch 10. Februar 2010, 17:04
von microkernel
Hallo,
ich würde gerne mit "matplotlib" ein Diagramm erstellen welches ungefähr so aussieht: Link zum Diagramm. Aber dennoch habe ich nicht wirklich vor mich in die library einzuarbeiten. - Ich möchte nur wissen wie ich so ein Diagramm erstellen kann.
Nun hab eich dazu auch ein passendes Script gefunden, welches so ein Diagramm erzeugt:

Code: Alles auswählen

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab

r = mlab.csv2rec('aapl.csv')
r.sort()
r = r[-20:]  # get the last 20 days

# first we'll do it the default way, with gaps on weekends
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(r.date, r.adj_close, 'o-')
ax.grid(True)
fig.autofmt_xdate()
fig.savefig("test")
Jetzt ist meine Frage wie man solche ".csv" Dateien, wie oben benutzt, bearbeiten kann.
Kann mir da jemand helfen?

Lg
microkernel

Verfasst: Mittwoch 10. Februar 2010, 17:11
von Dav1d
:(

PS: der smiley ist ein Link

Verfasst: Mittwoch 10. Februar 2010, 17:38
von microkernel
ohh... Das Module war nicht bekannt....
Vielen Dank!

Verfasst: Mittwoch 10. Februar 2010, 18:04
von microkernel
ok, aber jetzt habe ich noch folgendes Problem:
Wenn ich folgendes Script ausführe, wird zwar eine Datei mit den Namen "autos.csv" erstellt, doch sie hat keinen Inahlt:

Code: Alles auswählen

>>> writer = csv.DictWriter(open("autos.csv", "wb"), 
                   ["marke", "modell", "leistung_in_ps"]) 
 
>>> writer.writerow({"marke" : "marke", "modell" : "modell", 
                     "leistung_in_ps" : "leistung_in_ps"}) 
>>> daten = ({"marke" : "Volvo", "modell" : "P245", 
              "leistung_in_ps" : "130"}, 
             {"marke" : "Ford", "modell" : "Focus", 
              "leistung_in_ps" : "90"}, 
             {"marke" : "Mercedes", "modell" : "CLK", 
              "leistung_in_ps" : "250"}, 
             {"marke" : "Audi", "modell" : "A6", 
              "leistung_in_ps" : "350"}) 
>>> writer.writerows(daten)
Woran kann das liegen?

Verfasst: Mittwoch 10. Februar 2010, 18:35
von lunar
Du musst die Datei korrekt schließen, sonst werden die Daten nicht geschrieben.

Verfasst: Donnerstag 11. Februar 2010, 14:45
von microkernel
ok, danke.

Verfasst: Donnerstag 11. Februar 2010, 16:51
von microkernel
:D ich hab jetzt noch eine frage, aber ich will nicht nochmal ein extra Thread aufmachen:
Nun hab' ich das mit den CSV Dateien ganz gut hinbekommen und ein Diagramm erstellt das Script auch schon.
Nun habe ich folgendes Problem:
Mein Programm speichert alle 20 Minuten einen Wert in eine ".csv" Datei (ich muss die Werte aus ein bestimmten Grund zwichenspeichern), und erstellt danach aus diesen Dateiinhalt ein Diagramm.
Aber leider sieht es nicht so aus wie ich mir es erhofft habe:Diagramm; Anstatt das unten nur jede 20. Minute eine Uhrzeit steht, sind dort auch die Minuten zwichen der Eintragung notiert.
Jetzt lautet meine Frage wie ich das Einstellen kann, das bei dem Diagramm nur alle 20 Minuten unten die Uhrzeit angezeigt wird.


Lg
microkernel

Verfasst: Freitag 12. Februar 2010, 05:57
von gkuhl

Code: Alles auswählen

ax.set_xticks(x)