Vous pouvez tracer plusieurs sous-tracés de plusieurs trames de données pandas à l'aide de matplotlib avec une simple astuce consistant à faire une liste de toutes les trames de données. Ensuite, utilisez la boucle for pour tracer des sous-graphiques.
Code de travail:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# dataframe sample data
df1 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df2 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df3 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df4 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df5 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df6 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
#define number of rows and columns for subplots
nrow=3
ncol=2
# make a list of all dataframes
df_list = [df1 ,df2, df3, df4, df5, df6]
fig, axes = plt.subplots(nrow, ncol)
# plot counter
count=0
for r in range(nrow):
for c in range(ncol):
df_list[count].plot(ax=axes[r,c])
count=+1
En utilisant ce code, vous pouvez tracer des sous-graphiques dans n'importe quelle configuration. Vous devez simplement définir le nombre de lignes nrow
et le nombre de colonnes ncol
. En outre, vous devez créer une liste des blocs de données df_list
que vous vouliez tracer.
.subplots()
renvoie différents systèmes de coordonnées en fonction des dimensions du tableau de sous-graphiques que vous créez. Donc, si vous retournez des sous-graphiques où, par exemple,nrows=2, ncols=1
vous devrez indexer les axes commeaxes[0]
etaxes[1]
. Voir stackoverflow.com/a/21967899/1569221