Limpiar el fondo
Mientras exploras los patrones a nivel estatal de los bienes vendidos en los farmer's markets, hay algunos estados que te llaman la atención. North Dakota y New Mexico suelen situarse cerca del final del ranking en cuanto a la proporción de farmer's markets que venden un determinado bien. En cambio, Vermont aparece siempre entre los primeros. Quieres presentar los patrones generales de ventas por estado y, al mismo tiempo, destacar los estados que te resultaron interesantes.
Vas a crear un diagrama de dispersión de los bienes vendidos según la proporción de mercados que venden ese bien en cada estado. Para resaltar los estados interesantes, dibuja una línea que conecte los puntos de cada estado. Para conseguir un gráfico limpio y minimalista, reduce el fondo a un conjunto sencillo de cuadrículas de orientación.
Este ejercicio forma parte del curso
Mejora tus visualizaciones de datos en Python
Instrucciones del ejercicio
- Establece el fondo del gráfico en blanco con líneas de cuadrícula.
- Codifica los ejes x e y de los gráficos de dispersión y de líneas con el
'good'vendido y'prop selling', respectivamente. - Elimina todos los bordes del gráfico. Recuerda que, de forma predeterminada,
sns.despine()solo elimina las líneas de borde (spines) superior y derecha.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Set background to white with grid
sns.set_style('____')
plt.scatter('____','____', marker = '_', alpha = 0.7, data = goods_by_state)
# Draw lines across goods for highlighted states
highlighted = goods_by_state.query("state in ['New Mexico','North Dakota','Vermont']")
sns.lineplot('____','____', 'state', data = highlighted, legend = False)
# Draw state name at end of lines
last_rows = highlighted.groupby('state', as_index = False).agg('first')
for _,row in last_rows.iterrows():
plt.annotate(row['state'], (row['good'], row['prop selling']),
ha = 'right', xytext = (5,0), textcoords = 'offset pixels')
# Remove all borders
sns.____(____ = ____, ____ = ____)
plt.show()