Manipuler des dataframe avec python c’est une chose. Faire parler les chiffres en est une autre. On parle alors de Data visualisation. Python propose des librairies très puissantes (matplotlib & seaborn) pour des supports de visualisation comme des diagrammes en bâton (Bar chart), des diagrammes circulaires (Pie chart) ou encore les fameuses boîtes à moustache (Box plot).
Cet article vous permettra de mettre en place rapidement des graphiques qui illustreront vos analyses ! Les exemples mentionnés ci-dessous permettent d’analyser un dataset (données sur le Black friday) que vous pouvez télécharger pour vous exercer.
# Je charge ici le fichier que je viens de télécharger import pandas as pd import numpy as np black_friday = pd.read_csv("BlackFriday.csv") # On commence par importer la librairie maptplotlib import matplotlib.pyplot as plt
Préparation de la donnée
# On va créer un dataframe avec les données groupées par tranche d'âge age_groupe = black_friday.groupby("Age") # On souhaite connaître le volume des ventes réalisées par catégorie d'âge achats_clients=dict() # On initialise un dictionnaire for age,group in age_groupe:# On lance un boucle for pour compléter alimenter le dictionnaire avec la donnée achats_clients[age]=sum(group["Purchase"]) # On vérifie le dictionnaire achats_clients
Créer le premier graphique avec plt.plot
# Je souhaite représenter les volumes de ventes en fonction des tranches d'âge plt.plot(list(achats_clients.keys()),list(achats_clients.values())) # On convertit en liste avec list() les "keys" et "values" du dictionnaire plt.draw() # j'affiche mon graphique
Ajouter des points dans le graphique avec marker=”o”
# A savoir il est possible d'afficher des points pour une meilleure lisibilité avec marker="o" plt.plot(list(achats_clients.keys()),list(achats_clients.values()),marker="o") # A savoir il est possible de n'afficher que les points avec linestyle="" plt.plot(list(achats_clients.keys()),list(achats_clients.values()),marker="o", linestyle="")
Ajouter un titre avec plt.title et des annotations pour les axes avec plt.xlabel et plt.ylabel
plt.plot(list(achats_clients.keys()),list(achats_clients.values()),marker='o',linestyle="") plt.xlabel("Catégorie d'âge") plt.ylabel("Somme totale des ventes") plt.title("Somme totale des ventes effectuées par catégorie d'âge",y=1.1) #y= pour ajuster la hauteur du titre plt.draw()
Créer rapidement un nuage de points avec plt.scatter
# Scatter permet de créer directement un nuage de point et fonctionne aussi avec des dictionnaires plt.scatter(achats_clients.keys(),achats_clients.values())
Agrandir son graphique avec plt.rcParams
#Agrandir son nuage de point plt.rcParams["figure.figsize"]=[16,9] plt.scatter(achats_clients.keys(),achats_clients.values())
Ajouter de la couleur à son graphique avec cmap=””
#Ajouter des couleurs au nuage de points plt.rcParams["figure.figsize"]=[16,9] plt.scatter(achats_clients.keys(),achats_clients.values(), c=list(achats_clients.values()), cmap="seismic") #Pour trouver d'autres couleurs : https://matplotlib.org/users/colormaps.html plt.xlabel("Catégorie d'âge") plt.ylabel("Somme totale des ventes") plt.title("Somme totale des ventes effectuées par catégorie d'âge",y=1.1) #y= pour ajuster la hauteur du titre plt.draw()
Ajouter une échelle à votre graphique avec plt.colorbar()
#Comment ajouter une échelle #Ajouter des couleurs au nuage de points plt.rcParams["figure.figsize"]=[16,9] plt.scatter(achats_clients.keys(),achats_clients.values(), c=list(achats_clients.values()), cmap="seismic") plt.xlabel("Catégorie d'âge") plt.ylabel("Somme totale des ventes") plt.title("Somme totale des ventes effectuées par catégorie d'âge",y=1.1) #y= pour ajuster la hauteur du titre plt.colorbar(orientation="horizontal") plt.draw()
Exporter son graphique au format .png avec plt.savefig
plt.rcParams["figure.figsize"]=[16,9] plt.scatter(achats_clients.keys(),achats_clients.values(), c=list(achats_clients.values()),marker='D', cmap="seismic",s=100) plt.xlabel("Catégorie d'âge") plt.ylabel("Somme totale des ventes") plt.title("Somme totale des ventes effectuées par catégorie d'âge",y=1.1) #y= pour ajuster la hauteur du titre plt.colorbar() plt.savefig("mongraph.png", bbox_inches="tight") #pour enregistrer le graph dans de bonne proportion plt.draw()
Créer un bar plot avec plt.bar
# Je vais cette fois chercher les nombre de ventes en fonction du sexe de l'acheteur data = black_friday["Gender"].value_counts() #pour compter les valeurs uniques # Je paramètre mon bar plot plt.rcParams["figure.figsize"]=[16,9] plt.bar(data.index,data, color=["blue","red"]) plt.xlabel("Sexe de l'acheteur") plt.ylabel("Nombre d'acheteur") plt.title("Nombre de ventes en fonction du sexe de l'acheteur") # J'affiche mon graph plt.draw()
Créer un box plot avec plt.boxplot
plt.rcParams["figure.figsize"]=[16,9] plt.boxplot(black_friday["Purchase"]) plt.draw() # Pour changer la valeur de l'abscisse plt.xticks([1],["Ventes"]) plt.draw()
Créer un pie chart avec plt.pie
# Je vais chercher la donnée data= black_friday["Age"].value_counts() plt.rcParams["figure.figsize"]=[9,9] plt.pie(data.values, labels=data.index, autopct='%1.1f%%',shadow=True, startangle=90) plt.draw()
Afficher 2 ou plusieurs graphiques dans une même fenêtre avec plt.subplot()
plt.rcParams["figure.figsize"]=[16,9] plt.subplot(211) plt.bar(data.index,data, color=["blue","red"]) plt.xlabel("Sexe de l'acheteur") plt.ylabel("Nombre d'acheteur") plt.title("Coucou les amis") plt.subplot(212) plt.boxplot(black_friday["Purchase"]) plt.xticks([1],["Ventes"]) plt.tight_layout() plt.draw
Créer un chart box avec seaborn
import seaborn as sns sns.boxplot(x="Gender",y="Purchase", hue="Age", data=black_friday, palette="muted") plt.legend(bbox_to_anchor=(1.05,1),loc=2, borderaxespad=0) plt.draw()
Créer un chart bar avec seaborn
sns.countplot(x="Age",hue="Gender", data=black_friday, palette="Set1")
Créer un nuage de points avec seaborn
sns.catplot(x="Age",y="Purchase", hue="Gender", data = subset, kind="swarm") plt.draw()
0 commentaires