CommencerCommencer gratuitement

Popularité des produits vendus par État

Le jeu de données des marchés fermiers contient des colonnes correspondant à 28 produits différents et indique s’ils sont vendus sur chaque marché. Vous souhaitez voir si des tendances intéressantes émergent concernant la probabilité de trouver un produit donné dans les marchés d’un État. Pour répondre à cette question, vous regroupez les données en trois colonnes :

  • state : le nom de l’État
  • good : le produit étudié
  • prop_selling : la proportion de marchés de 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 nuage de points textuel : le produit sur l’axe des x et, sur l’axe des y, la proportion de marchés d’un État qui vendent ce produit.

Cet exercice fait partie du cours

Améliorer vos visualisations de données en Python

Afficher le cours

Instructions

  • Filtrez goods_by_state pour ne garder que les produits listés dans to_plot.

  • Masquez les points du nuage en définissant leur taille à rien.

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

Exercice interactif pratique

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

# 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