Visualiser avec Matplotlib et Seaborn

Nous allons voir quelques outils pour ce qu’on appelle la Data Visualization. De manière très simple, ces outils, ces packages de modules, permettent de créer des graphiques et des visuels qui permettent de mieux comprendre notre exploration de données, notamment pour nous, humains.

Il existe de nombreux packages qui permettent de faire de la data visualization mais nous allons ici nous familiariser avec les principaux, qui sont :

  • Matplotlib: programmation de bas niveau (low-level) qui permet une personnalisation quasi-totale de vos graphiques.
  • Pandas : basé sur Matplotlib, il peut se faire directement sur le dataframe ou la série pandas et est plus simple à coder. Des paramètres comme les libellés des axes, la légende, etc. sont automatisés.
  • Seaborn: aussi un package de programmation de haut niveau (high-level) basé sur Matplotlib, il permet de simplifier grandement vos codes et apporte un visuel agréable.

Visualisation avec la fonction plot d’un Dataframe (pandas)

air_qua_station.plot.bar(rot=70, figsize=(10,7))
plt.axhline(y=air_qua_station['Air Quality'].mean(), color='r', label='Moyenne', linestyle='--')
plt.title("Qualité de l'air par Station à Barcelone", fontsize = 15)
plt.ylabel("Air Quality")
plt.legend()
plt.show()

Vous remarquerez que la première ligne de code est un objet simple de Pandas : pd.DataFrame.plot.bar(). C’est cette seule ligne de code qui fait (presque) tout le graphique. Le reste du code est l’utilisation de Matplotlib en low-level pour faire une ligne rouge horizontale et pour ajouter des informations.

Nous n’allons pas lire ce que nous voyons sur le graphique, ce cours est simplement pour survoler les différents outils de visualization et non les interpréter.

Visualisation avec la fonction plot de Seaborn

plt.figure(figsize=(10,7))
sns.barplot(data = air_qua_station, x = air_qua_station.index, y = 'Air Quality', label = 'Air Quality', color='tab:blue')
plt.axhline(y=air_qua_station['Air Quality'].mean(), color='r', label='Moyenne', linestyle='--')
plt.xticks(rotation=70)
plt.title("Qualité de l'air par Station à Barcelone", fontsize = 15)
plt.legend()
plt.show()

Avec Seaborn, même si le dataframe a deux dimensions, il faut préciser ce qu’est l’axe x, l’axe y et le dataframe. Pour le reste, Seaborn est un outil très puissant et propose une multitude de types de graphique.

Visualisation avec la fonction plot de Matplotlib

Pour s’amuser, on peut créer un objet couleur qui va nous permettre de modifier les couleurs des barres en fonction d’une condition. Ici, si oui ou non la qualité de l’air d’un quartier est supérieure à la moyenne de Barcelone.

color = air_qua_station['Air Quality'].apply(lambda x: 'tab:blue' if x > air_qua_station['Air Quality'].mean() else 'lightcoral')

plt.figure(figsize=(10,7))
plt.bar(air_qua_station.index, air_qua_station['Air Quality'], color=color, label='Air Quality')
plt.axhline(y=air_qua_station['Air Quality'].mean(), color='r', label='Moyenne', linestyle='--')
plt.xticks(rotation=70)
plt.xlabel("Station")
plt.ylabel("Air Quality")
plt.title("Qualité de l'air par Station à Barcelone", fontsize = 15)
plt.legend()
plt.show()

Matplotlib est un outil low-level mais très personnalisable. Finalement, Seaborn et les méthodes de visualisation de Pandas sont basés sur Matplotlib. Matplotlib comprend de nombreux types de graphiques, feuilletez la documentation et amusez-vous !

Analyse des corrélations entre variables

plt.figure(figsize=(10,7))
sns.heatmap(air_quality.corr(), vmin=-1, vmax=1, annot=True)
plt.title("Map de corrélation", fontsize=15)
plt.show()

 

NB : Il existe avec Matplotlib, une AOO (rappel : Approche Orientée Objet). Selon votre envie, regardez cette vidéo de 12:44 à 16:05.