Pfeil-Annotationen
Stell dir vor, du bist Stadtplaner:in in Long Beach, Kalifornien. Long Beach liegt am Pazifik und hat jedes Jahr an Silvester eine große Feuerwerksshow. Du möchtest prüfen, ob diese Show die Luftqualität der Stadt negativ beeinflusst. Dazu schaust du dir die CO- und NO2-Werte am Neujahrstag an. Es stellt sich jedoch heraus, dass der Neujahrstag im Diagramm rechts kein Ausreißer ist, sondern in einem der dichteren Bereiche liegt.
Um die Leser:innen dorthin zu führen, nutzt du eine Annotation mit einem Pfeil, der auf den Wert am Neujahrstag zeigt. So erklärst du, was betrachtet wird, während der Text in einem weniger überfüllten Bereich des Plots steht.
Diese Übung ist Teil des Kurses
So verbesserst du deine Datenvisualisierungen in Python
Anleitung zur Übung
- Hole die Zeile aus
jan_pollution, die dem Neujahrstag 2012 in der Stadt Long Beach entspricht, mit der pandas-Methode.query(). - Setze den Endpunkt des Pfeils (
xy), indem du die SpaltenwerteCOundNO2aus dem DataFramelb_newyearsverwendest. - Nutze das Argument
xytext, um den Text der Pfeil-Annotation unten links anzuordnen, bei x =2, y =15. 'shrink'den Pfeil auf0.03, damit er den interessierenden Punkt nicht verdeckt.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()