Auffüllen matplotlib Nebenhandlungen durch eine Schleife und eine Funktion

Muss ich zeichnen, Geschichten einer Figur durch schleifendurchläufe; jeder iteration ruft eine Funktion in einem anderen Modul definiert (=ein anderes py-Datei), zieht ein paar Nebenhandlungen. Hier ist, was ich versucht habe -- und leider nicht funktioniert:

1) Vor der Schleife, erstellen Sie eine Abbildung mit der angemessenen Anzahl von Zeilen und 2 Spalten:

 import matplotlib.pyplot as plt     
 fig, axarr = plt.subplots(nber_rows,2)

2) Innerhalb der Schleife, bei iteration Nummer iter_nber, rufen Sie die Funktion zeichnen jede Nebenhandlung:

 fig, axarr = module.graph_function(fig,axarr,iter_nber,some_parameters, some_data)

3) Die jeweilige Funktion ist im Grunde wie diese; jede iteration erzeugt ein paar Nebenhandlungen auf der gleichen Zeile:

 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

Funktioniert das nicht. Ich am Ende mit einem leeren Wert am Ende der Schleife.
Ich habe versucht, verschiedene Kombinationen der oben genannten, wie wenn man nur axarr in der Funktion return argument, ohne Erfolg. Offensichtlich verstehe ich nicht die Logik dieser Figur und seine Geschichten.

Anregungen sehr geschätzt.

  • Könnten Sie ein Beispiel?
  • Dank hitzg. Ich hatte gehofft, dass der vereinfachte code würde helfen, Sie finden, was mein problem ist. Der code ist sehr, sehr lang und voller details, die sind völlig unabhängig von der Frage bei der hand.
  • Ein Ding, das sieht seltsam aus, ist der index 2 im axarr[iter_nber,2]. das sollte einen Fehler auslösen
  • Ich dachte, dies wäre die 2d-Spalte der Nebenhandlung grid? Ich bekomme keine Fehler in der Tat. Nur eine leere Abbildung.
  • Nein. 1 ist die zweite Spalte. Python verwendet null-basierten Indizes
  • Numpy-arrays (und mehr oder weniger alle python-Objekte) verwenden, 0-basierte Indizierung. x[2] ist das Dritte Element in x, nicht die zweite. Der code, den Sie gepostet haben, erscheint im wesentlichen richtig. Der Fehler ist wahrscheinlich wegen etwas, was ziemlich banal, das ist einfach nicht in dem code, den Sie geschrieben.
  • Es tut mir Leid hitzg, du hast Recht. In dem eigentlichen code habe ich O und 1.
  • Wie für das code-Beispiel, das ich bezog sich auf eine Minimale, Vollständige und Überprüfbare Beispiel. Also auch wenn das bedeutet etwas mehr Arbeit für Euch, es macht das Leben leichter für die Menschen, die versuchen, Ihnen zu helfen (und mehr wahrscheinlich, dass jemand tatsächlich)

InformationsquelleAutor Charles | 2014-12-19
Schreibe einen Kommentar