Aan de slagGa gratis aan de slag

Omgaan met te veel categorieën

Soms heb je weinig ruimte in je figuur en moet je veel data tegelijk laten zien. Hier wil je het jaarverloop van elke verontreinigende stof voor elke stad in de pollution-gegevensset tonen. Elke trajectlijn wordt getekend met de y-waarde als aantal standaarddeviaties vanaf het jaargemiddelde. Dat betekent dat je heel veel lijnen tegelijk in je plot hebt — veel meer dan je duidelijk kunt onderscheiden met kleur.

Om dit aan te pakken, heb je besloten een kleine subset van combinaties van stad en verontreinigende stof (wanted_combos) te benadrukken. Deze subset is voor jou het belangrijkst; de andere trajecten geven waardevolle context voor vergelijking. Om de aandacht te sturen, geef je alle niet-gehighlighte trajectlijnen dezelfde 'other'-kleur.

Deze oefening maakt deel uit van de cursus

Je datavisualisaties verbeteren in Python

Cursus bekijken

Oefeninstructies

  • Pas de list comprehension aan om de gewenste combinaties van stad en verontreinigende stof (wanted_combos) te isoleren.
  • Laat de lijnplot de lijnen kleuren op basis van de nieuw aangemaakte kolom color_cats in je DataFrame.
  • Gebruik het argument units om te bepalen hoe, dus vanuit welke kolom, de punten met elkaar verbonden moeten worden om elke lijn te vormen.
  • Schakel het samenvoegen (binning) van punten uit met het argument estimator.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Choose the combos that get distinct colors
wanted_combos = ['Vandenberg Air Force Base NO2', 'Long Beach CO', 'Cincinnati SO2']

# Assign a new column to DataFrame for isolating the desired combos
city_pol_month['color_cats'] = [x if x in ____ else 'other' for x in city_pol_month['city_pol']]

# Plot lines with color driven by new column and lines driven by original categories
sns.lineplot(x = "month",
             y = "value",
             hue = '____',
             units = '____',
             estimator = ____,
             palette = 'Set2',
             data = city_pol_month)
plt.show()
Code bewerken en uitvoeren