Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Faire un graphique à partir de données

Après cette leçon: Je peux faire un graphique qui répond à une question.

Leçon de 45 min3 commandesLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Faut-il plus de vélos les jours de soleil ?

Un graphique transforme une colonne de nombres en une image qu'on comprend en une seconde. Bien le choisir, c'est choisir celui qui répond à la question posée.

Le loueur de vélos veut savoir s'il doit prévoir plus de vélos les jours de soleil. Trois cent soixante-cinq nombres ne lui répondent pas. Un graphique en barres, oui.

À la fin de cette leçon

Remarque

Je peux faire un graphique qui répond à une question.

Mots clés

MotCe que ça veut dire
Axela ligne graduée qui porte les valeurs d'un graphique
Diagramme en barresun graphique avec une barre par groupe
Histogrammeun graphique qui montre comment des valeurs se répartissent
Totalla somme des valeurs d'un groupe
Moyennele total divisé par le nombre de valeurs

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Avant de commencer

Remarque

Appuie sur Start the lab. Le lab est un JupyterLab rien qu'à toi, avec le fichier hires.csv : les locations de vélos de chaque jour de 2025. Chaque script enregistre une image dans ton dossier de travail et affiche des nombres. Tu peux ouvrir l'image dans JupyterLab.

Chaque question appelle son graphique

Avant de dessiner, écris la question en une phrase. La question décide du graphique.

Pour comparer des groupes, on trace des barres. Pour voir comment des valeurs se répartissent, on trace un histogramme. Pour voir comment un chiffre change dans le temps, on trace une ligne.

Exemple : une question, un graphique

Question du loueurGraphiquePourquoi
Quelle météo loue le plus ?Diagramme en barresUne barre par météo
Combien de jours louent 300 vélos ?HistogrammeIl compte les jours par case
Les locations montent-elles en été ?CourbeLe temps est sur l'axe du bas
Chaud et locations vont-ils ensemble ?Nuage de pointsUn point par jour

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un histogramme montre comment les valeurs se répartissent

On range les valeurs en cases de même largeur, puis on compte combien tombent dans chaque case. Ici chaque case vaut 50 locations.

La barre la plus haute montre le cas le plus courant. Lance le Run : il compte les jours de chaque case et enregistre l'image hist.png.

Compte les jours de chaque case

Commande
docker exec jupyter python3 steps/hist.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Exemple : les jours par nombre de locations

Locations par jourNombre de jours
0 à 491
50 à 993
100 à 14924
150 à 19939
200 à 24973
250 à 29994
300 à 34968
350 à 39941
400 à 44920
450 à 4992

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Total ou moyenne : comparer des groupes

Pour comparer des groupes, on calcule un chiffre par groupe : le total ou la moyenne. Le total dépend du nombre de jours de chaque groupe. La moyenne tient compte de ce nombre.

Dans le fichier, 131 jours sont ensoleillés, 114 nuageux et 120 pluvieux.

Exemple : locations par météo

MétéoJoursTotal des locationsMoyenne par jour
sunny13140903312,2
cloudy11430436267,0
rainy12027313227,6

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Calcule la moyenne de chaque météo

Commande
docker exec jupyter python3 steps/weather.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Un axe coupé trompe l'œil

Dans un diagramme en barres, la hauteur de la barre doit valoir la valeur. Pour cela, l'axe part de zéro.

Si on coupe le bas de l'axe, les petites différences paraissent énormes. Lance le Run : il trace les mêmes barres deux fois, une fois depuis 0 et une fois depuis 220, et compare les rapports.

Compare un axe honnête et un axe coupé

Commande
docker exec jupyter python3 steps/axis.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une erreur fréquente

Attention

Beaucoup croient qu'un axe coupé rend le graphique plus lisible. Il le rend surtout plus trompeur : une différence de 37 % paraît douze fois plus grande. Fais partir l'axe de zéro pour les barres, et écris toujours un titre et le nom de chaque axe.

À toi : un total par groupe en Python

Code: python
# Des ventes de glaces : le parfum, puis les euros.
ventes = [["fruit", 12], ["chocolat", 20], ["fruit", 8], ["vanille", 5], ["chocolat", 10]]
totaux = {}
for ligne in ventes:
    parfum = ligne[0]
    euros = ligne[1]
    if parfum not in totaux:
        totaux[parfum] = 0
    totaux[parfum] = totaux[parfum] + euros
print(totaux)
# Ajoute une vente de vanille à 7 euros dans la liste et relance.

Pour aller plus loin : un titre honnête

Écris un titre pour le graphique des moyennes par météo. Il doit dire ce que le graphique montre, pas seulement son sujet.

Compare « Locations par météo » et « Les jours de soleil louent 37 % de vélos de plus que les jours de pluie ». Lequel répond à la question du loueur ?

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.