2012-04-03 2 views
1

Je suis en train de tracer deux colonnes d'un fichier texte à l'aide matplotlib python mais je reçoisErreur de conversion dans numpy.loadtxt()

ValueError: invalid literal for float(): 148.000000;

Ceci est mon script python

import numpy as np 
import matplotlib.pyplot as plt 
x,y = np.loadtxt('sharma5.txt') 
fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(x,y) 
plt.show() 

et ici est une partie de mon dossier texte

36.000000 61.000000 
36.000000 61.000000 
36.000000 148.000000; 
36.000000 60.000000 
36.000000 120.000000 
36.000000 77.000000 
36.000000 160.000000 

Merci d'avance ..

+0

N'oubliez pas de formater votre code en utilisant Ctrl-K! – ptomato

Répondre

1

Si vous ne voulez pas réparer votre fichier de données, vous pouvez utiliser l'option converters pour loadtxt afin de supprimer les points virgules inutiles. Quelque chose comme np.loadtxt("sharma5.txt", converters = {1: lambda s: float(s.strip(";"))}) devrait fonctionner.

0

Le problème est le point-virgule dans votre fichier texte, qui n'est pas reconnu comme un caractère légal pour la conversion en nombre. Corrigez le bug dans le programme qui a généré ce fichier texte.