Could not convert string to float

l0511 Messages postés 4 Statut Membre -  
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   -


import matplotlib.pyplot as plt
import numpy as np

#Lecture des données du fichier txt
t, x, y= np.loadtxt("donnees_velo.txt", unpack=True, usecols=(0,1,2), delimiter="\t", skiprows=2)

#Creation du graphique
plt.axis("equal")
plt.title("Graphique de l'etude d'un mvt circulaire uniforme")
plt.xlabel("x")
plt.ylabel("y")
plt.plot(x,y,color="red",label="Trajectoire",marker="+")

#Fin de la creation du graphique
plt.legend()
plt.grid()
plt.show()


Et là, il me met:
could not convert string to float

Je tiens à dire que mon fichier texte est bien dans le même dossier que celui de mon fichier python...

Merciiii
A voir également:

3 réponses

yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 585
 
bonjour,
à quelle ligne obtiens-tu cette erreur?
pourquoi ne fais-tu pas une conversion explicite de string vers float?
ne penses-tu pas utile d'afficher et de partager ce que contiennent tes variables?
et, peut-être, le contenu de ton fichier?
merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
l0511 Messages postés 4 Statut Membre
 
Bonjour,
Justement l'erreur n'est notifiée sur aucune ligne.
En fait, c'est un travail de Spe physique (je suis en Terminale) et notre prof nous a donné ce code à compléter. Je n'ai pas plus d'information, désolée.
Mon texte est en fichier UNICODE. Est-ce bon ?

Je ne vois pas où peut être l'erreur...

je vous met mon fichier texte:



t (s) X1 (m) Y1 (m)
0 -0,038337492 0,231767563
0,041667 -0,067961917 0,226539723
0,083333 -0,094101116 0,21434143
0,125 -0,116755088 0,195172685
0,166667 -0,135923834 0,169033486
0,208333 -0,146379513 0,141151674
0,25 -0,151607353 0,111527248
0,291667 -0,148122127 0,081902823
0,333333 -0,13940906 0,050535784
0,375 -0,121982928 0,026139199
0,416667 -0,101071569 0,00522784
0,458333 -0,07493237 -0,012198293
0,5 -0,047050558 -0,017426133
0,541667 -0,017426133 -0,017426133
0,583333 0,00522784 -0,017426133
0,625 0,036594878 -0,003485227
0,666667 0,059248851 0,013940906
0,708333 0,076674983 0,033109652
0,75 0,092358503 0,055763624
0,791667 0,097586342 0,081902823
0,833333 0,102814182 0,109784635
0,875 0,097586342 0,137666447
0,916667 0,090615889 0,160320419
0,958333 0,07493237 0,184717005
1 0,055763624 0,205628364
1,041667 0,034852265 0,21956927
1,083333 0,00522784 0,23002495
1,125 -0,024396586 0,233510176



Merci de votre réponse rapide....
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   1 585
 
ajoute
print (x,y)
avant de créer le graphique
0
l0511 Messages postés 4 Statut Membre
 
Toujours pas...
Ca me remet: ValueError: could not convert string to float: '\x000\x00'
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   1 585
 
as-tu essayé de remplacer les virgules par des points dans le fichier de données?
0
l0511 Messages postés 4 Statut Membre > yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention  
 
justement, la conversion du fichier excel en fichier texte devrait le faire automatiquement pour python non ?
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   1 585 > l0511 Messages postés 4 Statut Membre
 
quel fichier excel? qui convertir le fichier excel en fichier texte?
le code que tu montres lit un fichier texte, et est perturbé parce qu'il y a des virgules et pas des points.
je ne sais pas en quoi consiste l'exercice, et je veux éviter de faire le travail à ta place.
il est possible de transformer les virgules en points pendant la lecture du fichier texte, ou après cette lecture. c'est peut-être le but de l'exercice?
0
l0511 > yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention  
 
En fait, on avait des données dans un fichier Excel. Le problème c'est que python ne lit pas Excel alors notre prof nous a dit de le convertir en fichier texte pour le mettre au format "python".
Du coup je ne comprends pas pourquoi ça ne marche pas puisqu'il nous a dit que cela "enleverait le problème"....

Encore merci
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   1 585 > l0511
 
Quand il crée le fichier texte, Excel tient compte des options de Windows (pour la représentation des nombres, donc pour le séparateur décimal, virgule ou point).
Je suppose que l'ordi où Excel a créé le fichier texte utilise une virgule comme séparateur décimal.
Le prof utilise peut-être sur son ordi un point comme séparateur décimal.
C'est une option de Windows, qu'il est possible de changer (temporairement).
Le plus simple, c'est peut-être d'ouvrir le fichier texte avec Notepad, et de remplacer toutes les virgules par des points. Notepad peut faire cela en une fois.

Il est possible aussi de modifier le programme python pour changer les virgules en points, mais il me semble que le prof serait surpris que tu sois capable de faire cela.
0