CommencezCommencez gratuitement

Annotations avec flèche

Imaginez que vous êtes urbaniste pour Long Beach, en Californie. Long Beach est située sur l'océan Pacifique et présente un grand feu d'artifice chaque veille du jour de l'An. Vous voulez vérifier si ce spectacle a un effet négatif sur la qualité de l'air de la ville. Pour ce faire, vous examinerez les niveaux de CO et de NO2 le jour de l'An. Toutefois, il s'avère que le jour de l'An n'est pas l'une des valeurs aberrantes dans le graphique de droite ; il se trouve dans une zone plus chargée.

Pour guider le lecteur jusqu'à ce point, vous utiliserez une annotation accompagnée d'une flèche pointant vers la valeur du jour de l'An. Cela offrira une annotation claire qui explique ce que la personne voit, tout en plaçant le texte dans une région moins encombrée du graphique.

Cette activité fait partie du cours

Améliorer vos visualisations de données en Python

Voir le cours

Instructions de l’exercice

  • Récupérez, à partir de jan_pollution, la ligne correspondant au jour de l'An 2012 dans la ville de Long Beach en utilisant la méthode .query() de pandas.
  • Définissez l'extrémité de la flèche (xy) en utilisant les valeurs des colonnes CO et NO2 du DataFrame lb_newyears.
  • Utilisez l'argument xytext pour placer le texte de l'annotation de la flèche dans le coin inférieur gauche de l'affichage à x = 2, y = 15.
  • « 'réduisez' » la flèche à 0.03, afin qu'elle n'occulte pas le point d'intérêt.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Query and filter to New Years in Long Beach
jan_pollution = pollution.query("(month  ==  1) & (year  ==  2012)")
lb_newyears = jan_pollution.query("(____  ==  ____) & (____  ==  '____')")

sns.scatterplot(x = 'CO', y = 'NO2',
                data = jan_pollution)

# Point arrow to lb_newyears & place text in lower left 
plt.annotate('Long Beach New Years',
             xy = (____, ____),
             xytext = (____, _____), 
             # Shrink the arrow to avoid occlusion
             arrowprops = {'facecolor':'gray', 'width': 3, '____': ____},
             backgroundcolor = 'white')
plt.show()
Modifier et exécuter le code