Introduction

Pourquoi Matplotlib

Pandas est une librairie utilisée pour visualiser des données 2D.

Par convention, Matplotlib.pyplot est importé sous le nom plt

import matplotlib.pyplot as plt

%matplotlib inline

Bases

Pour dessiner un graphe, il y a différentes manières de procéder:

  1. Matplotlib est integré avec Pandas, on peut appeler Matplotlib directement sur un DataFrame pour visualiser ses données:

     x  = np.arange(-10, 11)
     df = pd.DataFrame({
         'x^2'   : x ** 2,
         '-(x^2)': 1 - (x ** 2),
     }, index=x)
    
     ax = df.plot(figsize=(12, 6))
     ax.set_xlabel('X')
     ax.set_ylabel('X Squared')
     ax.set_title('My Nice Plot')
    

    Par défaut, plot affiche un graphique ligne, mais on peut préciser un style de graphique différent (valeurs acceptées: line, bar, barh, hist, box, kde, area, pie, scatter ou hexbin)

    df_etc.plot(kind='hist', y='Ether', bins=150)
    
  2. On peut utiliser l’API Matploblib globale — via plt

     plt.figure(figsize=(12, 6))
     plt.plot(x, x ** 2, label='x^2')
     plt.plot(x, -1 * (x ** 2), label='-(x^2)')
     plt.legend()
    
     plt.xlabel('X')
     plt.ylabel('X Squared')
     plt.title('My Nice Plot')
    
  3. Ou l’API Matplotlib orientée objet — en créant un objet avec subplots.
    Notons que Pandas retourne un objet Matplotlib

     fig, ax = plt.subplots(figsize=(12, 6))
     ax.plot(x, x ** 2, label='x^2')
     ax.plot(x, -1 * (x ** 2), label='-(x^2)')
     ax.legend()
    
     ax.set_xlabel('X')
     ax.set_ylabel('X Squared')
     ax.set_title("My Nice Plot")
    

Quadriller l’espace

On peut quadriller l’espace pour afficher plusieurs graphiques.

Subplots

Subplots by hand


Show

La méthode show affiche le graphique.
Sous Jupyter, cette méthode est appelée automatiquement quand on exécute une cellule qui contient un graphique en cours.

from scipy.stats import norm

x = np.arange(-3, 3, 0.01)
plt.plot(x, norm.pdf(x))
plt.show()

Savefig

La méthode savefig permet d’enregistrer le graphique crée dans une image.

plt.plot(x, norm.pdf(x))
plt.plot(x, norm.pdf(x, 1.0, 0.5))
plt.savefig('MyPlot.png', format='png')

Close

En mode global, Matplotlib applique les modifications au graphique en cours, bien qu’il ne soit pas explicité stocké dans une variable de votre côté — il est gardé du côté Matplotlib. Pour supprimer un graphique en cours de modification, il faut appeler plt.close.

C’est notamment utile quand on veut utiliser Matploblib pour effectuer des calculs et non pour afficher un graphique:

x = np.random.randint(20,60,100)

n, bins, patches = plt.hist(x, range(20,61,5))
plt.close()

print(n)
'''
[10. 12. 16. 12. 10. 10. 16. 14.]
'''

print(bins)
'''
[20 25 30 35 40 45 50 55 60]
'''