Anotaciones con flechas
Imagina que eres planificador urbano de Long Beach, California. Long Beach está en el Océano Pacífico y celebra un gran espectáculo de fuegos artificiales cada Nochevieja. Quieres comprobar si este espectáculo afecta negativamente a la calidad del aire de la ciudad. Para ello, vas a observar los niveles de CO y NO2 el día de Año Nuevo. Sin embargo, resulta que el día de Año Nuevo no es uno de los valores atípicos en el gráfico de la derecha, sino que está en una de las zonas más concurridas.
Para guiar a quien lo vea hasta ese punto, usarás una anotación con una flecha que señale el valor del día de Año Nuevo. Así aportarás una anotación clara que explica qué está viendo la persona, mientras sitúas el texto en una región menos saturada del gráfico.
Este ejercicio forma parte del curso
Mejora tus visualizaciones de datos en Python
Instrucciones del ejercicio
- Obtén la fila de
jan_pollutionque corresponde al día de Año Nuevo de 2012 en la ciudad de Long Beach usando el método.query()de pandas. - Define el extremo de la flecha (
xy) usando los valores de las columnasCOyNO2del DataFramelb_newyears. - Usa el argumento
xytextpara colocar el texto de la flecha de anotación en la esquina inferior izquierda de la visualización, en x =2, y =15. - "shrink" la flecha a
0.03, para que no oculte el punto de interés.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()