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
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 colonnesCOetNO2du DataFramelb_newyears. - Utilisez l'argument
xytextpour 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()