CommencezCommencez gratuitement

Popularité des produits vendus par État

Le jeu de données sur les marchés fermiers contient des colonnes correspondant à 28 produits différents et indique s'ils sont vendus ou non dans chaque marché. Vous voulez voir s'il s'y cache des observations intéressantes sur la probabilité de trouver un produit donné dans les marchés d'un État. Pour répondre à cette question, vous réduisez les données à trois colonnes :

  • state - le nom de l'État
  • good - le produit visé
  • prop_selling - la proportion de marchés dans cet État qui vendent ce produit

Pour repérer rapidement d'éventuels motifs, vous choisissez un sous-ensemble de produits qui vous intéressent et décidez de créer un simple « texte-nuage » : le produit sur l'axe des x et, sur l'axe des y, la proportion des marchés d'un État qui vendent ce produit.

Cette activité fait partie du cours

Améliorer vos visualisations de données en Python

Voir le cours

Instructions de l’exercice

  • Filtrez goods_by_state selon les produits souhaités listés dans to_plot.

  • Masquez les points du nuage en réglant leur taille à rien.

    • Notez que dans sns.scatterplot(), size sert à associer les valeurs d'une colonne à une échelle de tailles, tandis que s sert à définir une taille constante pour tous les points.
  • Centrez le texte afin qu'il soit directement aligné avec la position du produit sur l'axe des x.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Subset goods to interesting ones
to_plot = ['Cheese','Maple','Fruits','Grains','Seafood','Plants','Vegetables']
goods_by_state_small = goods_by_state.____("good in "+str(to_plot))

g = sns.scatterplot('good','prop_selling', data = goods_by_state_small,
                    # Hide scatter points by shrinking to nothing
                    ____ = ____)

for _,row in goods_by_state_small.iterrows():
  g.annotate(row['state'], (row['good'], row['prop_selling']), 
             # Center annotation on axis
             ha = '____', 
             size = 10)

plt.show()
Modifier et exécuter le code