Pandas : Comment tracer plusieurs DataFrames dans des sous-parcelles
Vous pouvez utiliser la syntaxe de base suivante pour tracer plusieurs DataFrames pandas dans des sous-tracés :
import matplotlib.pyplot as plt #define subplot layout fig, axes = plt.subplots(nrows=2, ncols=2) #add DataFrames to subplots df1.plot(ax=axes[0,0]) df2.plot(ax=axes[0,1]) df3.plot(ax=axes[1,0]) df4.plot(ax=axes[1,1])
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : tracer plusieurs DataFrames Pandas dans des sous-parcelles
Supposons que nous ayons quatre DataFrames pandas qui contiennent des informations sur les ventes et les retours dans quatre magasins de détail différents :
import pandas as pd #create four DataFrames df1 = pd.DataFrame({'sales': [2, 5, 5, 7, 9, 13, 15, 17, 22, 24], 'returns': [1, 2, 3, 4, 5, 6, 7, 8, 7, 5]}) df2 = pd.DataFrame({'sales': [2, 5, 11, 18, 15, 15, 14, 9, 6, 7], 'returns': [1, 2, 0, 2, 2, 4, 5, 4, 2, 1]}) df3 = pd.DataFrame({'sales': [6, 8, 8, 7, 8, 9, 10, 7, 8, 12], 'returns': [1,0, 1, 1, 1, 2, 3, 2, 1, 3]}) df4 = pd.DataFrame({'sales': [10, 7, 7, 6, 7, 6, 4, 3, 3, 2], 'returns': [4, 4, 3, 3, 2, 3, 2, 1, 1, 0]})
Nous pouvons utiliser la syntaxe suivante pour tracer chacun de ces DataFrames dans un sous-tracé ayant une disposition de 2 lignes et 2 colonnes :
import matplotlib.pyplot as plt #define subplot layout fig, axes = plt.subplots(nrows=2, ncols=2) #add DataFrames to subplots df1.plot(ax=axes[0,0]) df2.plot(ax=axes[0,1]) df3.plot(ax=axes[1,0]) df4.plot(ax=axes[1,1])
Chacun des quatre DataFrames est affiché dans un sous-tracé.
Notez que nous avons utilisé l’argument axes pour spécifier où chaque DataFrame doit être placé.
Par exemple, le DataFrame appelé df1 a été placé dans la position avec une valeur d’index de ligne de 0 et une valeur d’index de colonne de 0 (par exemple le sous-tracé dans le coin supérieur gauche).
Notez également que vous pouvez modifier la disposition des sous-tracés en utilisant les arguments nrows et ncols .
Par exemple, le code suivant montre comment organiser les sous-tracés en quatre lignes et une colonne :
import matplotlib.pyplot as plt #define subplot layout fig, axes = plt.subplots(nrows=4, ncols=1) #add DataFrames to subplots df1.plot(ax=axes[0]) df2.plot(ax=axes[1]) df3.plot(ax=axes[2]) df4.plot(ax=axes[3])
Les sous-parcelles sont désormais disposées selon une disposition comportant quatre lignes et une colonne.
Notez que si vous souhaitez que les sous-tracés aient les mêmes échelles sur les axes y et x, vous pouvez utiliser les arguments sharey et sharex .
Par exemple, le code suivant montre comment utiliser l’argument sharey pour forcer tous les sous-tracés à avoir la même échelle sur l’axe Y :
import matplotlib.pyplot as plt #define subplot layout, force subplots to have same y-axis scale fig, axes = plt.subplots(nrows=4, ncols=1, sharey=True) #add DataFrames to subplots df1.plot(ax=axes[0]) df2.plot(ax=axes[1]) df3.plot(ax=axes[2]) df4.plot(ax=axes[3])
Notez que l’axe Y de chaque sous-tracé va désormais de 0 à 20.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment créer un diagramme circulaire à partir de Pandas DataFrame
Comment créer un nuage de points à partir du DataFrame Pandas
Comment créer un histogramme à partir de Pandas DataFrame