Annotations avec flèches
Imaginez que vous êtes urbaniste pour la ville de Long Beach, en Californie. Long Beach est située sur l’océan Pacifique et organise un grand feu d’artifice chaque réveillon du Nouvel An. Vous souhaitez vérifier si ce spectacle a un impact négatif sur la qualité de l’air de la ville. Pour cela, vous allez examiner 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 un point aberrant dans le graphique de droite ; il se trouve dans l’une des zones les plus chargées.
Pour guider le lecteur vers ce point, vous allez ajouter une annotation accompagnée d’une flèche pointant vers la valeur du jour de l’An. Cela fournira une annotation claire qui explique ce que l’on observe, tout en affichant le texte dans une zone moins encombrée du graphique.
Cet exercice fait partie du cours
Améliorer vos visualisations de données en Python
Instructions
- Récupérez, depuis
jan_pollution, la ligne correspondant au jour de l’An 2012 dans la ville de Long Beach à l’aide de 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 dans l’angle inférieur gauche de l’affichage, à x =2, y =15. - "'shrink'" 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 cet exemple de code.
# 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()