Aller au contenu

TP⚓︎

Découverte du module matplotlib⚓︎

Exercice 1

Le module matplotlib permet de facilement réaliser des graphiques (tracé de courbes, nuages de points, histogrammes...). On va voir dans cet exercice comment s'en servir.

  1. Recopier le morceau de programme suivant, et l'exécuter :
    from matplotlib import pyplot
    
    abscisses = [0, 1, 2, 3, 4, 5]
    ordonnees = [0, 1, 4, 9, 16, 25]
    
    pyplot.plot(abscisses, ordonnees, 'b-')
    pyplot.show()
    
    Le premier paramètre de la fonction plot est une liste d'abscisses de points de la courbe, le second est une liste de même taille donnant l'ordonnée de chaque point, et le troisième est une chaîne de caractère décrivant l'apparence de la courbe.

Après avoir consulté la documentation de la fonction plot, modifier ce programme pour obtenir différents effets de couleur, de style de ligne, etc.

  1. Recopier le morceau de programme suivant, et l'exécuter :
from matplotlib import pyplot

paniers = [0, 1, 2, 3, 4]
effectifs = [12, 37, 24, 9, 3]

pyplot.bar(paniers, effectifs)
pyplot.xticks(paniers,["Insuffisant", "Passable", "Assez bien", "Bien", "Très bien"])
pyplot.show()

Le premier paramètre de la fonction bar est une liste d'abscisses de barres de l'histogramme, le second est une liste de même taille donnant la hauteur de chaque barre.

Après avoir consulté la documentation de la fonction bar, modifier ce programme pour obtenir différents effets de couleur, de largeurs de barres, etc.

Simulation de lancer de dés⚓︎

Exercice 2

  1. Grâce à la fonction randint du module random, écrire une fonction jet_deux_des, sans argument, qui renvoie le résultat d'un jet de deux dés à six faces (c'est-à-dire la somme des deux dés).
  2. Écrire une fonction histogramme prenant en argument un entier n, simulant n lancers de deux dés et renvoyant une liste de longueur 13, dont l'élément à la position i représente le nombre de lancers où la somme des deux dés a valu i. Par exemple, histogramme(4) pourrait renvoyer la liste
    [0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 1]
    
    ce qui signifie qu'il y a eu un tirage de somme 3, deux de somme 5 et un de somme 12.

Indice : pour initialiser une liste res de longueur 13 contenant uniquement des 0, on peut écrire res = [0] * 13

  1. En utilisant la fonction bar de matplotlib, écrire un programme affichant l'histogramme pour un grand nombre de tirages.

  2. Dans la liste calculée précédemment, les indices 0 et 1 ne sont jamais utilisés. Corriger la fonction précédente pour qu'elle renvoie une liste la plus courte possible. Comment faut-il accéder, dans cette nouvelle version, au nombre d'occurrences du résultat 7 ?

  3. \(\bigstar\) Modifier l'ensemble du code précédent afin de pouvoir réaliser la simulation de n lancers de k dés à p faces.