CommencerCommencer gratuitement

Gérer un trop grand nombre de catégories

Parfois, vous manquez d’espace dans la figure et devez montrer beaucoup de données à la fois. Ici, vous voulez afficher l’évolution sur l’année de chaque polluant pour chaque ville du jeu de données pollution. Chaque trajectoire de polluant sera tracée sous forme de ligne, avec une valeur en y correspondant au nombre d’écarts types par rapport à la moyenne annuelle. Cela signifie que votre graphique comportera beaucoup de lignes en même temps — bien plus que ce que vous pourriez distinguer clairement par la couleur.

Pour y faire face, vous avez décidé de mettre en avant un petit sous-ensemble de couples ville–polluant (wanted_combos). Ce sous-ensemble est le plus important pour vous, et les autres trajectoires fourniront un contexte utile pour la comparaison. Pour attirer l’attention, vous allez définir toutes les lignes des trajectoires non mises en évidence avec la même couleur « other ».

Cet exercice fait partie du cours

Améliorer vos visualisations de données en Python

Afficher le cours

Instructions

  • Modifiez la liste en compréhension pour isoler les couples ville–polluant souhaités (wanted_combos).
  • Indiquez au tracé de lignes de colorer les lignes selon la nouvelle colonne color_cats de votre DataFrame.
  • Utilisez l’argument units pour déterminer comment, c’est-à-dire à partir de quelle colonne, les points de données doivent être reliés pour former chaque ligne.
  • Désactivez l’agrégation des points avec l’argument estimator.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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()
Modifier et exécuter le code