2016-06-20 20 views
2

Ich habe eine Xarray DataArray, die von 0 bis 360 Länge und -90 bis 90 Breite geht. wenn ich es mit m.imshow plotten, ohne dass die Breiten Angabe, werden die Daten von der Karte um 180 Grad versetzt:Wie umschließt man Daten in einem Grundkartenplot?

m = Basemap() 
m.drawcoastlines() 
m.imshow(mean['Qle'].T) 

basemap with offset imshow

oder ich kann es mit m.pcolormesh(x=mean.lon, y=mean.lat, data=mean['Qle'].T), und ich bekomme diese:

basemap with non-wrapping pcolormesh

Was ist der beste Weg, um die Daten zu wickeln? Ich möchte immer noch das Standard-Kartenlayout mit Afrika in der Mitte.

+0

@HanZhengzu: huh? '[:: - 1]' dreht einfach die Äxte um, so dass jedes Ding auf dem Kopf steht und von hinten nach vorne ... es verschiebt nichts. – naught101

+0

Entschuldigung, ich verstehe dein Problem falsch. –

Antwort

2

Ah, habe es gefunden. pcolormesh hat ein latlon Argument, das automatisch die Daten verschiebt:

m.pcolormesh(x=mean.lon, y=mean.lat, data=mean['Qle'].T, latlon=True) 

pcolormesh with shifted data

+0

Was ist der Unterschied zwischen Ihrer fraglichen 'pcolormesh' Unterroutine und Ihrer Antwort? Ich sehe ihre Disparität nicht, sondern reproduziere eine unwahrscheinliche Zahl. –

+0

@HanZhengzu: Ahh .. die falsche Zeile eingefügt. jetzt behoben. – naught101