Mein Gehirn tut weh
Ich habe einen Code, der 33 Grafiken in einer langen Spalte erzeugt
%Vor% Ich würde gerne jeden dieser Punkte in die Figur bringen, die ich oben kommentiert habe, aber alle meine Versuche scheitern. Ich habe versucht, ax=i
in den Plot-Befehl zu setzen und bekomme 'numpy.ndarray' object has no attribute 'get_figure'
. Auch, wenn ich zurück skaliere und dies mit einer einzelnen Zeichnung in einer einzelnen Figur mache, gehen meine x- und y-Skalen beide in den Hacken. Ich fühle mich, als ob ich der Antwort nahe bin, aber ich brauche einen kleinen Stoß. Danke.
Die Achsen behandeln, dass subplots
returns je nach Anzahl der angeforderten Teilplots variieren:
Es scheint, dass Ihr Problem von der Änderung der Schnittstelle vom 2. bis zum 3. Fall (d. h. 1. bis 2. Achse) entsteht. Die folgenden Snippets können Ihnen helfen, wenn Sie nicht vorher wissen, wie die Array-Form aussieht.
Ich habe numpys unravel_index
nützlich gefunden, um über die Achsen zu iterieren, z. B .:
Sie können das zurückgegebene Array auch so umformen, dass es linear ist (wie ich es in dieser Antwort verwendet habe):
%Vor% Wie in der verknüpften Lösung angemerkt, muss axs ein wenig massiert werden, wenn Sie 1x1 Unterplots haben (und dann ein einzelnes Achsenhandle erhalten; axs = np.array(axs)
ist genug).
Und nachdem Sie die Dokumente genauer gelesen haben (oops), setzen Sie squeeze=False
forces subplots
, um unabhängig von der Auswahl von ncols / nrows eine 2d-Matrix zurückzugeben. ( squeeze
ist standardmäßig auf True gesetzt).
Wenn Sie dies tun, können Sie entweder über zwei Dimensionen iterieren (wenn es für Ihre Daten natürlich ist) oder einen der obigen Ansätze verwenden, um Ihre Daten linear zu durchlaufen und einen 2d-Index in ax
zu berechnen.
Tags und Links python matplotlib pandas