Puede trazar múltiples subtramas de múltiples marcos de datos de pandas usando matplotlib con un simple truco de hacer una lista de todos los marcos de datos. Luego, use el bucle for para trazar subtramas.
Código de trabajo:
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
Con este código, puede trazar subtramas en cualquier configuración. Solo necesita definir el número de filas nrow
y el número de columnas ncol
. Además, debe hacer una lista de los marcos de datos df_list
que desea trazar.
.subplots()
devuelve diferentes sistemas de coordenadas dependiendo de las dimensiones de la matriz de subtramas que está creando. Entonces, si devuelve subtramas donde, por ejemplo,nrows=2, ncols=1
deberá indexar los ejes comoaxes[0]
yaxes[1]
. Ver stackoverflow.com/a/21967899/1569221