J'ai un fichier CSV sur e:\dir1\datafile.csv
. Il contient trois colonnes et 10 lignes d'en-tête et de fin doivent être ignorées. Je voudrais le tracer avec numpy.loadtxt (), pour lequel je n'ai trouvé aucune documentation rigoureuse.
Voici ce que j'ai commencé à écrire à partir des nombreux essais que j'ai trouvés 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:\dir1\datafile.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()
Selon les docsnumpy.loadtxt
est
un lecteur rapide pour les fichiers simplement formatés. La fonction genfromtxt fournit une gestion plus sophistiquée, par exemple, des lignes avec des valeurs manquantes.
il n'y a donc que quelques options pour gérer des fichiers plus compliqués. Comme mentionné numpy.genfromtxt
a plus d'options. Donc, à 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 lire une ligne d'en-tête du fichier avec names=True
) et que tracer 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 docstrings de l'intérieur ipython
ou en utilisant un IDE comme spider
if vous préférez les lire en HTML.
Je devine
x= data[:,0]
y= data[:,1]