Animaux de compagnie préférés

Introduction

Dans ce projet tu vas créer des camemberts et des histogrammes à partir de données que tu recueilles des membres de ton Code Club.

Introduction :

Dans ce projet on utilise le module graphique et statistique Pygal afin de visualier des données. Les enfants collectionnent des données et utilisent Pygal pour l’afficher avec des Camemberts et des Histogrammes.

Ressources en ligne

Ce projet utilise Python 3. Nous vous conseillons d’utiliser trinket pour écrire du Python en ligne. Ce projet contient les Trinkets suivants :

  • ‘Animaux de compagnie préférés’ point de départ – jumpto.cc/python-new

Il y a également un trinket qui contient un exemple de solution aux défis :

  • ‘Animaux de compagnie préférés’ terminé – trinket.io/python/9339862606

Ressources hors-ligne

Ce projet pourrait être complété hors-ligne si préférable. Vous pouvez accéder aux ressources du projet en cliquant sur ‘Matériaux du Projet’. Ce lien contient une section ‘Ressources du projet’, y compris vers des ressources dont les enfants auraient besoin pour compléter le projet hors-ligne. Vérifiez que chaque enfant ait accès à une copie de ces ressources. Cette section comporte le fichier suivant :

  • popular-pets/popular-pets.py

Vous pouvez aussi trouver une version finalisée des défis de ce projet dans la section ‘Ressources du volontaire’, qui contient :

  • popular-pets-finished/popular-pets.py
  • popular-pets-finished/pets.txt
  • popular-pets-finished/butterflies.txt
  • popular-pets-finished/piratesinjas.txt

(Toutes les ressources ci-dessus sont également téléchargeables comme des fichiers .zip pour le projet et les volontaires.)

Objectifs pédagogiques

  • Données - représentations graphiques et statistiques Pygal
  • Lire à partir d’un fichier

Ce projet couvre des élements des parcours suivants du Programme de Créativité Numérique Raspberry Pi :

  • Combiner des structures de programmation afin de résoudre des problèmes.

Défis

  • Créer ton propre histogramme ;
  • Créer un nouveau histogramme à partir d’un fichier ;
  • Encore plus de représentations graphiques, histogrammes, camemberts !

Foire à questions

  • Étape 1 requiert que l’animateur/volontaire aide le le groupe à s’organiser pour faire un petit sondage pour recueillir des informations au sujet de leurs animaux de compagnie préférés. Si vous n’avez que très peu d’enfants qui travaille sur le projet, vous pouvez utiliser les échantillons de données inclus dans le projet ou inventer des informations.
  • Pour les défis tu pourrais soit choisir de faire des sondages comme un group et d’enregistrer les résultats sur un tableau blanc pour tous les membres du club, soit vous pouvez permettre aux enfants d’effectuer leurs propres sondages et enregistrer leurs propres données.

Créer un camembert

Un camembert (diagramme circulaire) est un moyen utile pour représenter des données. Faisons un sondage des animaux de compagnie préférés dans ton Code Club, puis representons ces informations comme un camembert.

  • Demande à l’animateur de ton club pour t’aider à organiser un sondage. Tu pourrais enregistrer les résulats sur un ordinateur connecté à un vidéo-projecteur ou utiliser un tableau blanc que tout le monde peut voir.

    Écris une liste d’animaux de compagnie et vérifie bien que le préféré de tout et chacun soit inclus dans la liste.

    Ensuite demande à tout le monde de voter pour leur animal préféré en se levant la main quand on dit le nom. Un vote par personne !

    Par exemple :

  • Ouvre un modèle Python vide dans Trinket : jumpto.cc/python-new.
  • Créons un camembert pour afficher les résultats de ton sondage. Tu vas utiliser la bibliothèque PyGal pour accomplir une partie du travail. D’abord importe la bibliothèque Pygal :

  • Maintenant créons un cambembert et rendons-le (affichons-le à l’écran) :

    Ne t’inquiète pas, ça devient plus intéressant quand tu ajoutes des données !

  • Ajoutons des données concernant un des animaux domestiques. Utilise l’information que tu as recueillie.

    Il n’y qu’un seul élément d’information donc ça remplit l’ensemble du camembert.

  • Maintenant ajoute les autres données qui restent de la même façon.

    Par exemple :

  • Et pour terminer ta représentation des données, ajoute un titre :


Défi : Créer ton propre histogramme

Tu peux créer des histogrammes avec la même méthode. Il suffit d’utiliser barchart = pygal.Bar() afin de créer un nouveau histogramme, et ensuite ajouter des données et les rendre de la même façon que pour le camembert.

Collectionne des données de tes collègues de ton Code Club pour créer ton propre histogramme.

Veille à ce que tu choisis un sujet que tout le monde connait !

Voici quelques idées :

  • Quel est ton sport préféré ?
  • Quel est le parfum de glace que tu préfères ?
  • Par quel moyen de transport vas-tu à l’école ?
  • Dans quel mois tombe ton anniversaire ?
  • Joues-tu à Minecraft ? (oui/non)

Ne pose pas de question sur des sujets qui donnent des informations personnels comme par exemple où habitent les personnes. Demande à l’animateur du club si tu as des doutes.

Exemples :


Lire des données à partir d’un fichier

C’est pratique de pouvoir stocker des données dans un fichier plutôt qu’à l’intérieur de ton code.

  • Ajoute un nouveau fichier à ton projet et nomme-le pets.txt :

  • Maintenant ajoute des données à l’intérieur du fichier. Tu peux utiliser les informations concernant les animaux de compagnie préférés que tu as recueillies ou d’autres exemples de données.

  • Revient vers main.py et transformer en commentaire les lignes qui rendent (affichent) les représentations graphiques (pour qu’elles ne s’affichent pas) :

  • Maintenant lisons les données à partir du fichier.

    La boucle for s’exécutera en continu les lignes dans le fichier. splitlines() enlève le charactère/symbole pour une nouvelle ligne de la fin de chaque ligne car tu t’en sers pas.

  • Chaque ligne doit être séparé dan un label et une valeur :

    Ceci va scinder les lignes au niveau des espaces, donc il ne faut pas inclure des espaces dans les labels. (Tu pourrais ajouter une méthode pour traiter les espaces dans les labels plus tard.)

  • Tu recevras peut-être un message d’erreur comme le suivant :

    Ça arrive si tu as une ligne vide à la fin de ton fichier.

    Tu peux corriger l’erreur en cherchant le label et valeur uniquement si la ligne n’est pas vide.

    Pour ce faire, décaler le code à l’intérieur de la boucle for et ajoute le code if line: en-dessus :

  • Tu peux retirer la ligne print(label, value) maintenant que tout marche correctement.
  • Maintenant ajoutons le label et la valeur dans un nouveau camembert et rend les données pour les visualiser :

    A noter que add attend en entrée une valeur qui est un numéro, int(value) transforme la valeur d’une chaîne de charactères dans un integer.

    Si tu voulais utiliser des décimals comme 3.5 (“floating point numbers”) tu pourrais utiliser float(value) à la place.


Défi : Créer un nouveau histogramme à partir d’un fichier

Saurais-tu créer un nouveau histogramme ou camembert à partir des données dans un fichier ? Tu auras besoin de créer un nouveau fichier .txt.

Astuce : Si tu veux mettre des espaces dans les labels il faudrait utiliser line.split(': ') et ajouter des “deux points” dans ton fichier de données, par exemple ‘Red Admiral: 6’


Défi : Encore plus de représentations graphiques, histogrammes, camemberts !

Saurais-tu créer un camembert et un histogramme à partir du même fichier ? Tu pourrais soit réutiliser les informations déjà collectionnées soit recueillir d’autres données?.

Produit ajouté avec succès à la comparaison des produits