données de représentation graphique du fichier CSV avec matplotlib
j'ai un fichier CSV à e:dir1datafile.csv
.
Il contient trois colonnes et 10 lignes de titre et de fuite doivent être sautées.
Je voudrais tracer avec numpy.loadtxt(), pour lequel je n'ai pas trouvé de documentation rigoureuse.
Voici ce que j'ai commencé à écrire depuis plusieurs essais j'ai trouvé sur le web.
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
def read_datafile(file_name):
# the skiprows keyword is for heading, but I don't know if trailing lines
# can be specified
data = np.loadtxt(file_name, delimiter=',', skiprows=10)
return data
data = read_datafile('e:dir1datafile.csv')
x = ???
y = ???
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_title("Mains power stability")
ax1.set_xlabel('time')
ax1.set_ylabel('Mains voltage')
ax1.plot(x,y, c='r', label='the data')
leg = ax1.legend()
plt.show()
2 réponses
Selon docsnumpy.loadtxt
un lecteur rapide pour les fichiers simplement formatés. La fonction genfromtxt permet une manipulation plus sophistiquée, par exemple, des lignes avec des valeurs manquantes.
il n'y a donc que quelques options pour traiter les fichiers plus compliqués.
Comme mentionné numpy.genfromtxt
a plus d'options. Ainsi, à titre d'exemple, vous pouvez utiliser
import numpy as np
data = np.genfromtxt('e:\dir1\datafile.csv', delimiter=',', skip_header=10,
skip_footer=10, names=['x', 'y', 'z'])
pour lire les données et attribuer des noms aux colonnes (ou de lire une ligne d'en-tête du fichier avec names=True
) et que l'intrigue avec
ax1.plot(data['x'], data['y'], color='r', label='the data')
je pense que numpy est assez bien documenté maintenant. Vous pouvez facilement inspecter les cordes de l'intérieur ipython
ou en utilisant un IDE comme spider
si vous préférez les lire en HTML.