LoslegenKostenlos loslegen

Mit zu vielen Kategorien umgehen

Manchmal hast du wenig Platz in der Abbildung und musst viele Daten auf einmal zeigen. Hier möchtest du den ganzjährigen Verlauf jedes Schadstoffs für jede Stadt im pollution-Datensatz darstellen. Jede Schadstoffkurve wird als Linie geplottet, deren y-Wert der Anzahl der Standardabweichungen vom Jahresmittel entspricht. Das bedeutet, es werden sehr viele Linien gleichzeitig im Plot sein – viel mehr, als du sauber mit Farben unterscheiden könntest.

Um damit umzugehen, hast du dich entschieden, eine kleine Teilmenge aus Stadt-Schadstoff-Kombinationen (wanted_combos) hervorzuheben. Diese Teilmenge ist für dich am wichtigsten, und die anderen Verläufe liefern wertvollen Kontext zum Vergleich. Um den Fokus zu lenken, setzt du alle nicht hervorgehobenen Linien auf dieselbe „other“-Farbe.

Diese Übung ist Teil des Kurses

So verbesserst du deine Datenvisualisierungen in Python

Kurs anzeigen

Anleitung zur Übung

  • Passe das List Comprehension an, um die gewünschten Kombinationen aus Stadt und Schadstoff (wanted_combos) herauszufiltern.
  • Weise dem Liniendiagramm an, die Linien nach der neu erstellten Spalte color_cats in deinem DataFrame zu färben.
  • Verwende das Argument units, um festzulegen, wie, also anhand welcher Spalte, die Datenpunkte zu jeweils einer Linie verbunden werden sollen.
  • Deaktiviere das Binning der Punkte mit dem Argument estimator.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen