Ich mache etwas Plotten mit Cartopy und Matplotlib, und ich habe vor kurzem die PlateCarree Transformation verwendet, aber ich wechselte zu Mercator, weil Louisiana ein bisschen zu vermasselt war für meinen Geschmack. Vor dem Schalter hatte ich ein Logo in der linken unteren Ecke angezeigt, diese beiden Zeilen Code mit logo = matplotlib.image.imread('/Users/ian/Desktop/M.png') plt.imshow(logo, extent =(lon-offset -1 + .25, lon - offset + .75, lat - offset + .25, lat - offset + 1 + .75), zorder=35)
Image Skewing beim Anwenden von Cartopy-Transformationen
Wo das Ausmaß der Achse festgelegt wurde unter Verwendung dieser Punkte
ax.set_extent([lon-offset-1, lon+offset+1, lat-offset, lat+offset])
das ist, was die Handlung sah aus wie mit PlateCarree:
Nach dem Umstieg auf Mercator, habe ich alles gut funktionieren außer das Logo. Ich habe die Transformation Stichwort Argument für die Bildausgabe Zeile hinzugefügt, so jetzt heißt es:
plt.imshow(logo, extent =(lon-offset -1 +.25, lon - offset + .75, lat - offset + .25, lat - offset + 1 + .75), zorder=35, transform=ccrs.PlateCarree())
aber jetzt ist das das Logo hat ihre Knusprigkeit verloren und verzerrt werden mit der Transformation und die meisten geheimnisvoll, es schaltet Ecken hat in die obere linke Ecke des Grundstücks. Es sieht jetzt so aus:
Weiß jemand, wie ich die Projektion meiner Handlung ändern kann, ohne dieses Bild zu verdrehen? Was ich wirklich tun muss, ist sicherzustellen, dass die Ecke des Bildes in der Ecke des Diagramms im transformierten Koordinatensystem liegt, aber den Rest der Bildplatzierung unabhängig vom Koordinatensystem lässt. Ich überlegte mir, ob ich das Bild vielleicht ganz alleine in seinen eigenen Subplot stellen könnte, und dann versuchte ich, diesen Subplot direkt auf den Hauptplot zu legen. Scheint aber eine ziemlich schlechte Lösung. Vielen Dank!