Hallo, ich möchte daten aus einer csv. datei lesen aber am ende kommt ein Fehler: invalid syntax bei plt.show(). Warum?
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
from numpy import genfromtxt
data = np.genfromtxt('P:\...\Example.csv', dtype('f8'), delimiter=',')
fig = plt.figure()
ax1.plot(float(data['0']), float(data['1']), color='r', label='the data'
plt.show()
Csv lesen
-
- User
- Beiträge: 25
- Registriert: Freitag 12. April 2013, 19:53
Es fehlt auch noch die Definition für ax1. (Subplot)
Hier eine Version für eine .csv mit folgender Struktur:
x,y
0,1
1,2
2,3
.....
Am besten schaust du mal bei http://matplotlib.org/examples/ vorbei. Da gibt es haufenweise Beispiele zur Verwendung von matplotlib. Daraus lernt man am meisten.
Hier eine Version für eine .csv mit folgender Struktur:
x,y
0,1
1,2
2,3
.....
Code: Alles auswählen
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
from numpy import genfromtxt
data = np.genfromtxt('Example.csv', delimiter=',', names = True)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(data['x'], data['y'], color='r', label='the data')
plt.show()
-
- User
- Beiträge: 25
- Registriert: Freitag 12. April 2013, 19:53
Wie sieht deine .csv aus? Bei mir funktionieren Gleitkommazahlen ohne Probleme.
@Marleb: Die Ziffer 2 gefolgt von einem Semikolon ist ja auch keine gültige Darstellung einer Gleitkommazahl.
Code: Alles auswählen
In [1]: float('2;')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/home/bj/<ipython-input-1-581309b5305a> in <module>()
----> 1 float('2;')
ValueError: invalid literal for float(): 2;
-
- User
- Beiträge: 25
- Registriert: Freitag 12. April 2013, 19:53
Die Speicherung sollte egal sein, das Wichtigste ist der Feldtrenner. Deine Fehlermeldung deutet auf einen Fehler mit dem Komma (Punkt) für Gleitkommazahlen oder dem Feldtrenner hin.
Probier mal folgendes:
Das wäre für eine .csv mit folgendem Inhalt:
x;y
1;2
2;3
2;1.5
...
Falls das nicht funktionieren sollte, poste am besten ein paar Einträge deiner .csv Datei.
Probier mal folgendes:
Code: Alles auswählen
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
from numpy import genfromtxt
data = np.genfromtxt('Example.csv', delimiter=';', names = True)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(data['x'], data['y'], color='r', label='the data')
plt.show()
x;y
1;2
2;3
2;1.5
...
Falls das nicht funktionieren sollte, poste am besten ein paar Einträge deiner .csv Datei.
-
- User
- Beiträge: 25
- Registriert: Freitag 12. April 2013, 19:53
Code: Alles auswählen
import matplotlib.pyplot as plt
import numpy as np
from numpy import genfromtxt
data = np.genfromtxt('Example.csv', delimiter=' ', names = True)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(data['x'], data['y'], color='r', label='the data')
plt.show()
@Marleb: Da Semikolons die Fehlermeldungen auslösen können Deine Daten nicht so aussehen wie Du behauptest. Wie sehen sie denn nun *tatsächlich* aus?