Comment annoter les nuages de points Matplotlib
Vous pouvez utiliser la syntaxe de base suivante pour annoter des nuages de points dans Matplotlib :
#add 'my text' at (x, y) coordinates = (6, 9.5) plt.text(6, 9.5, 'my text')
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Créer un nuage de points de base
Le code suivant montre comment créer un nuage de points de base à l’aide de Matplotlib :
import matplotlib.pyplot as plt #create data x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] #create scatterplot plt.scatter(x, y)
Annoter un seul point
Nous pouvons utiliser le code suivant pour ajouter une annotation à un seul point du tracé :
import matplotlib.pyplot as plt #create data x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] #create scatterplot plt.scatter(x, y) #add text 'Here' at (x, y) coordinates = (6, 9.5) plt.text(6, 9.5, 'Here')
Annoter plusieurs points
Nous pouvons utiliser le code suivant pour ajouter des annotations à plusieurs points du tracé :
import matplotlib.pyplot as plt #create data x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] #create scatterplot plt.scatter(x, y) #add text to certain points plt.text(3, 4.5, 'This') plt.text(6, 9.5, 'That') plt.text(8.2, 14, 'Those')
Annoter tous les points
Nous pouvons utiliser le code suivant pour ajouter des annotations à chaque point du tracé :
import matplotlib.pyplot as plt #create data x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] labs = ['A', 'B', 'C', 'D', 'E'] #create scatterplot plt.scatter(x, y) #use for loop to add annotations to each point in plot for i, txt in enumerate(labs): plt.annotate(txt, (x[i], y[i]))
Par défaut, les annotations sont placées directement au-dessus des points du nuage de points et la taille de police par défaut est 10.
Le code suivant montre comment ajuster ces deux paramètres afin que les annotations soient légèrement à droite des points et que la taille de la police soit légèrement plus grande :
import matplotlib.pyplot as plt #create data x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] labs = ['A', 'B', 'C', 'D', 'E'] #create scatterplot plt.scatter(x, y) #use for loop to add annotations to each point in plot for i, txt in enumerate(labs): plt.annotate(txt, (x[i]+.25, y[i]), fontsize=12)
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans Matplotlib :
Comment ajouter une légende au nuage de points dans Matplotlib
Comment colorer un nuage de points par valeur dans Matplotlib
Comment ajouter une ligne moyenne aux tracés dans Matplotlib