È necessario disegnare sottotrame di una figura tramite iterazioni di loop; ogni iterazione chiama una funzione definita in un altro modulo (= un altro file py), che disegna una coppia di sottotrame. Ecco quello che ho provato - e purtroppo non funziona:popolamento di sottotrame matplotlib attraverso un loop e una funzione
1) prima del ciclo, creare una figura con il numero adeguato di righe e 2 colonne:
import matplotlib.pyplot as plt
fig, axarr = plt.subplots(nber_rows,2)
2) all'interno del ciclo, al numero di iterazioni iter_nber, chiamare la funzione di disegno ogni sottotrama:
fig, axarr = module.graph_function(fig,axarr,iter_nber,some_parameters, some_data)
3) la funzione in questione è fondamentalmente come questo; ogni iterazione crea una coppia di sottotrame sulla stessa riga:
def graph_function(fig,axarr,iter_nber,some_parameters, some_data):
axarr[iter_nber,1].plot(--some plotting 1--)
axarr[iter_nber,2].plot(--some plotting 2--)
return fig,axarr
Questo non funziona. Finisco con una figura vuota alla fine del ciclo. Ho provato varie combinazioni di quanto sopra, come lasciare solo axarr nell'argomento di ritorno della funzione, inutilmente. Ovviamente non capisco la logica di questa figura e delle sue sottotrame.
Eventuali suggerimenti molto apprezzati.
Potrebbe fornire un esempio di lavoro? – hitzg
grazie hitzg. Speravo che il codice semplificato ti aiutasse a capire quale fosse il mio problema. Il codice reale è molto lungo e pieno di dettagli completamente estranei alla domanda in questione. – Charles
Una cosa che sembra strana è l'indice '2' in 'axarr [iter_nber, 2]'. quello dovrebbe gettare un errore – hitzg