Basiques Python : Data visualisation avec matplotlib & seaborn

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

Soumettre un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Découvrez aussi …

Qu’est-ce le SEO et comment fonctionne t-il ?

Qu’est-ce le SEO et comment fonctionne t-il ?

Vous souhaitez comprendre ce qu'est le SEO et son fonctionnement ? Bonne nouvelle, vous êtes au bon endroit. Nous vous avons concocté un guide simple, concis et efficace pour mieux appréhender le SEO et ses enjeux.L'une des questions les plus fréquentes parmi nos...

Comment pousser Google à crawler vos sitemaps ?

Comment pousser Google à crawler vos sitemaps ?

Si vous êtes SEO, vous savez que les sitemaps XML sont importants pour le crawl et l'indexation de vos pages. Il existe plusieurs enjeux majeurs à travers les sitemaps XML : Les urls poussées dans les sitemaps doivent regroupées vos pages importantes d'un point de vue...

10 principes UX à connaître

10 principes UX à connaître

L'UX au service de votre site web Créer un site web n'est pas chose aisée. Cela exige un parfaite compréhension et analyse de la cible. Selon vous serez amener à adapter la navigation, le style ou encore le wording de votre site. Cependant, certaines règles restent...

How to create XML Sitemap with R

How to create XML Sitemap with R

XML sitemaps are must have when you want to make sure Google crawl your pages. To create XML sitemaps, it exists multiple free and paid solutions. Well, this article will show you how to create XML sitemaps for free with a simple R script. This method does not need to...

Créer un sitemap XML avec Python

Créer un sitemap XML avec Python

Qu'est-ce qu'un sitemap XML ? Un sitemap XML est un fichier qui vise à lister l'ensemble de vos urls importantes pour le SEO. Vous pouvez en créer plusieurs par thématique ou type de pages. Il existe certaines limitations concernant les sitemaps XML. Pour rappel, les...