2015-06-30 10 views
5

In Fortsetzung zu meiner vorherigen Frage: How to superimpose figures in matplotlib Ich möchte wissen, wie man ein wiederverwendbares basemap Objekt erstellen kann. Mein Problem ist, dass ein basemap ist kein pyplot Objekt, so dass die Lösung, die ich erhielt funktioniert gut auf figures/axes, aber nicht auf basemap Objekte.Wie man eine wiederverwendbare Grundkarte erstellt

Ich habe versucht, mich umzusehen und eine Lösung zu finden, konnte aber keine, nur Diskussionen finden.

+0

Es sollte keinen Grund geben, dass der in der Frage gezeigte Ansatz nicht mit Grundkartenachsen funktioniert. –

+0

Danke @joe, aber es funktioniert nicht genau das Gleiche. Grundkartenobjekte sind keine Eins-zu-eins-Objekte. –

+1

Nein, das sind sie nicht, aber sie sind immer noch Objekte. Sie können sie in eine Funktion übergeben, die dann ihre Methoden aufrichtig aufruft. Sie haben Plotmethoden, die einer "Axes" -Instanz sehr ähnlich sind, aber sie haben auch andere. Wenn Sie die zugrundeliegende 'Axes'-Instanz benötigen, können Sie sie mit' map._check_ax() 'erhalten, wobei' map' Ihr Grundkartenobjekt ist. Können Sie näher erläutern, was Sie zu tun versuchen? –

Antwort

1

Dank @JoeKington hier und @EdSmith unter How to superimpose figures in matplotlib konnte ich verstehen, wie ich erreichen konnte, was ich wollte: Grundkartenobjekte wiederverwenden und weitergeben.

ich es so gemacht:

  1. Erstellt ein base_map.py, der zwei Funktionen hat: plot(), die ein Kartenobjekt erstellen und einige Eigenschaften und ein anderes ziehen, set_a_map(), die eine leere Karte Objekt erstellen.
  2. In den anderen Modulen i auf dem Grundstück zusätzlichen Funktionen eine map=None Eigenschaft, und in jeder Funktion hinzugefügt i a:

    , so dass in dem Fall, dass kein Objekt Karte auf die andere Funktion übergeben werden, um die Funktion erstellt ein neues Kartenobjekt.

  3. In meinen Plot-Funktionen, anstatt plt.imshow(...) zum Beispiel zu verwenden, verwende ich map.imshow(...). Auf diese Weise werden meine Daten über eine Karte geplottet.

Vielen Dank für die Geduld und die wirklich hilfreichen Kommentare!