Zacznij terazZacznij za darmo

Gdy kategorii jest zbyt wiele

Zdarza się, że miejsce na wykresie jest ograniczone, a trzeba jednocześnie pokazać dużo danych. W tym ćwiczeniu chcesz przedstawić roczną trajektorię każdego zanieczyszczenia dla każdego miasta ze zbioru danych pollution. Każda trajektoria będzie narysowana jako linia, której wartość na osi y odpowiada odchyleniu standardowemu od średniej rocznej. Na wykresie pojawi się więc bardzo wiele linii – zdecydowanie zbyt dużo, by można je było wyraźnie odróżnić kolorem.

Aby sobie z tym poradzić, postanowiłeś(-aś) wyróżnić niewielki podzbiór kombinacji miasto–zanieczyszczenie (wanted_combos). Te kombinacje są dla ciebie najważniejsze, a pozostałe trajektorie stanowią kontekst porównawczy. Żeby skupić uwagę widza na wybranych danych, wszystkim pozostałym liniom nadasz ten sam, „neutralny" kolor.

To ćwiczenie jest częścią kursu

Ulepszanie wizualizacji danych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zmodyfikuj wyrażenie listowe tak, by wyodrębnić pożądane kombinacje miasta i zanieczyszczenia (wanted_combos).
  • Wskaż wykresowi liniowemu, że ma kolorować linie według nowo utworzonej kolumny color_cats w twoim DataFrame.
  • Użyj argumentu units, aby określić, w jaki sposób – czyli z której kolumny – punkty danych mają być łączone w poszczególne linie.
  • Wyłącz grupowanie punktów za pomocą argumentu estimator.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod