Pour lundi prochain 6 avril 2020
Je vous mets à disposition un fichier csv, téléchargeable ici (bouton droit, enregistrer sous, dessin.csv).
L’enregistrer dans un dossier. Le script ci-dessous est à enregistrer puis lancer dans le même dossier !
Compléter la fonction ci-dessous lecture qui va lire ce fichier et renvoyer une liste constituée de dictionnaires comme
{ 'espece' : 'noir', 'abscisse' : 1, 'ordonnee' : 2}
Attention les deux dernières valeurs sont à convertir en entier !
Pour que ce script fonctionne il faudra installer matplotlib
avec l’une de ces commandes (selon votre version de python) en invite de commandes (touche windows, taper cmd
)
py -3.8 -m pip install matplotlib
py -3.7 -m pip install matplotlib
py -3.6 -m pip install matplotlib
py -3.5 -m pip install matplotlib
- etc.
Le code à compléter :
def lecture(nom_du_fichier) : # initialisation : liste vide liste = ... # ouverture du fichier en lecture -> 'r' with open(... , ...) as fichier: # on récupère le contenu texte = fichier.read() # on le separe en lignes lignes = texte.split(sep = '\n') # on parcourt les lignes for phrase in lignes: # on découpe la phrase en trois morceaux dans une liste # attention dans ce csv le séparateur # est un virgule , et pas un ; liste_de_trois = ... if len(liste_de_trois) == 3: # un nouveau dico vide appelé new new = ... new['espece'] = liste_de_trois[2] # attention : à convertir en entiers # le premier élément de la liste new['abscisse'] = ... # le deuxième élément de la liste new['ordonnee'] = ... # on rajoute new à la liste ... # on ferme le fichier ouvert ... # on renvoie la liste remplie return ... liste = lecture("dessin.csv") ########################################### # Le code ci-dessous n'est pas à modifier # ########################################### import matplotlib.pyplot as plt tuning = [('noir', 'black'), ('jaune', 'yellow'), ('bleu', 'b'), ('truc','white')] for spec, couleur in tuning: # données x=[] y=[] for f in liste : if f['espece'] == spec: x.append(f['abscisse']) y.append(f['ordonnee']) plt.scatter(x, y, color = couleur, label = spec, marker = 's') # graphique plt.legend() plt.show()