De achtergrond opschonen
Tijdens het verkennen van patronen per staat in producten die op boerenmarkten worden verkocht, vielen een paar staten op. North Dakota en New Mexico stonden vaak onderaan qua aandeel boerenmarkten dat een bepaald product verkoopt. Vermont zat daarentegen vrijwel altijd bij de top. Je wilt de algemene patronen in productverkopen per staat laten zien, en tegelijk de staten benadrukken die je interessant vond.
Je maakt een scatterplot van verkochte producten tegen het aandeel markten in een staat dat dat product verkoopt. Om de interessante staten te benadrukken, teken je een lijn die de punten van elke staat met elkaar verbindt. Voor een strak en minimalistisch plot breng je de achtergrond terug tot een eenvoudige set oriënterende rasterlijnen.
Deze oefening maakt deel uit van de cursus
Je datavisualisaties verbeteren in Python
Oefeninstructies
- Zet de achtergrond van de plot op wit met rasterlijnen.
- Encodeer de x- en y-as van de scatter- en lijngrafieken respectievelijk met het verkochte
'good'en'prop selling'. - Verwijder alle randen uit de plot. Onthoud: standaard verwijdert
sns.despine()alleen de bovenste en rechter randlijnen (spines)!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()